2013-10-15 2 views
0

Я пытаюсь реализовать «лучший пример списка» с официальным сайта выбывания: http://knockoutjs.com/examples/betterList.htmlНевозможно сделать multiselectselect обновления немедленно

Я отображая список навыков, и все прекрасно работает, для обновления пользовательского интерфейса, кроме мультиселектора. Когда я нажимаю кнопку «Добавить», свойство наблюдаемого немедленно обновляется, но чтобы увидеть какие-либо изменения в мультиселекте, я должен щелкнуть по нему в пользовательском интерфейсе, а затем на дисплее появится новое умение.

Я попытался использовать события изменения и размытия: valueupdate: 'change', no success.

Модель

self.allSkills = ko.observableArray(""); 
self.skillToAdd = ko.observable(""); 
self.selectedSkills = ko.observableArray(""); 

self.addSkill = function() { 
        self.allSkills().push(self.skillToAdd()); 
        self.skillToAdd(""); 
       }; 

Посмотреть

<form data-bind="submit: $root.addSkill"> 
    <label>Required Skills:</label> 
    Add skill: <input type="text" data-bind="value: $root.skillToAdd, valueUpdate: 'afterkeydown'"/> 
    <button type="submit" data-bind="enable: $root.skillToAdd().length>0">Add</button> 
</form> 
<select multiple="multiple" data-bind="options: $root.allSkills, optionsText: $data, selectedOptions: $root.selectedSkills"> 
</select> 
+0

_multiselectselect_? что это? –

ответ

0

Вы отодвигая значение Базового массива. Вставить в сам наблюдаемый массив -

self.addSkill = function() { 
    var valueToPush = self.skillToAdd(); 
    self.allSkills.push(valueToPush); 
    self.skillToAdd(null); 
}; 
+0

теперь все работает. Спасибо!!! – Roman

Смежные вопросы