0

我一直在使用这个jsfiddle中的这个敲除绑定(来自这个最初的 SO 问题)一段时间,它一直在工作。

升级到 jQuery 1.8.3 和 jQuery UI 1.9.2 ( jsfiddle ) 后,在输入中输入文本时,在填充项目列表后(但未选中!),输入文本框被清除,您必须从开始。这很烦人,因为您总是必须从头开始,因此您将无法完成文本输入。

如果jqAutoSourceInputValuejqAutoSourceValue具有相同的属性名称,它可以工作,但是选择后的 id 或输入值不是所需的。

4

1 回答 1

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,那么还有其他一些方法可以做到这一点。让我知道。

于 2013-02-19T15:06:51.497 回答