2016-12-20 2 views
0

Я имею WebApplication с knockoutjsпроблема, связанная с автозаполнения Textbox в KNOCKOUT расслоение плотной

я должен реализовать автозаполнения текстового поля в веб-форму,

я получил следующий учебник

https://www.npmjs.com/package/knockout.autocomplete

я добавил следующий код:

var viewModel = { 
    keywords: ko.observableArray([ 
     'abstract', 'add', 'alias', 'as', 'ascending', 
     'async', 'await', 'base', 'bool', 'break' 
    ]) 
}; 
ko.applyBindings(viewModel); 
<input data-bind="autocomplete: { data: keywords, maxItems: 6 }" value=""/> 

работает отлично, но он связывает только текст, и я хочу привязать текстовую и стоимостную пару.

как я могу достичь в вышеуказанном коде?

Благодаря

+0

Приведите пример данных, к которым вы хотите получить доступ. Есть ли несколько ключевых слов для каждого элемента? Вы хотите показать ключевое слово или элемент как предложение? – user3297291

ответ

0

Я не проверял, но похоже, что он позволяет передавать форматчик, так что вы можете настроить, как она будет отображаться пользователю.

var viewModel = { 
    keywords: ko.observableArray([ 
    { name: 'Abstract', value: 'abstract' }, 
    { name: 'Break', value: 'break' } 
    ]), 
    format: function (value) { 
    // This is what is shown in the list, only pass what you want 
    return value.name; 
    }, 
    selected: ko.observable(), 
    onSelect: function (value) { 
    // value should be your name/value object 
    viewModel.selected(value); 
    } 
}; 

<input data-bind="autocomplete: { 
    data: keywords, 
    maxItems: 6, 
    format: format, 
    onSelect: onSelect 
}" value=""/> 
Смежные вопросы