0
我正在做一個jQuery自動完成與knockout.js接線的練習。我正在嘗試構建的應用程序是一個簡單的待辦任務列表。我的任務對象具有desc
,name
和id
等屬性。它有一個方法setUser()
它設置任務名稱& ID(基本分配任務給某人更新元素時更新模型更新時使用淘汰賽自定義綁定
,我寫我的自定義綁定這樣說:
ko.bindingHandlers.autocomplete = {
init: function (el, valueAccessor) {
var va = valueAccessor();
var lbl = va.label;
var val = va.value;
$(el).autocomplete({
source: src,
select: function (evt, ui) {
evt.preventDefault();
lbl(ui.item.label);
val(ui.item.value);
$(el).val(ui.item.label);
}
});
}
};
的data-bind
語法寫成如下:
<input type="text" data-bind="autocomplete : {label: name, value: id}"/>
所有這一切都很好地完美地連接了自動完成,但是,如果您改變模型中的某些內容,您自然希望關聯的文本框反射ct更新的結果。
這裏的簡單的解決方案是增加值綁定:
<input type="text"
data-bind="autocomplete : {label: name, value: id}, value: name"/>
但你如何做到這一點,而不value
結合?
jsbin鏈接:http://jsbin.com/InUHIwE/3/