我一直在使用此jsfiddle(from this initial SO question)的敲除绑定一段时间,它一直有效。
升级到jQuery 1.8.3和jQuery UI 1.9.2(jsfiddle)后,在输入中输入文本时,在填充项目列表(但未选中!)后,输入文本框将被清除,你必须从头开始重新打字。这很烦人,因为你无法完成文本输入,因为你总是需要从头开始。
如果jqAutoSourceInputValue
和jqAutoSourceValue
具有相同的属性名称,则它可以正常工作,但选择后的id或输入值不是所需的值。
答案 0 :(得分:2)
看起来这个问题来自于绑定的update
函数依赖于正在更新的observableArray这一事实。我不太确定jQuery UI中有什么变化可以使之前的实际行为发生变化,但是一个修复是更新到Knockout 2.2.1并通过peek
函数访问observableArray以避免依赖。类似的东西:
var source = (ko.isObservable(allBindings.jqAutoSource) ? allBindings.jqAutoSource.peek() : allBindings.jqAutoSource) || [];
更新了小提琴:http://jsfiddle.net/rniemeyer/xXuq6/
如果您无法更新到KO 2.2.1,那么还有其他一些方法可以实现。让我知道。