好吧,我已经和这个问题打了几个小时了,并把问题缩小到一个非常简单的
Fiddle
问题是,当我在文本输入上使用twitter bootstrap的typeahead插件并进行选择时,该值不会在KnockoutJS viewmodel中更新.我知道我可以破解它的工作,但必须有一些我在这里缺少的东西.
基本上我所拥有的是:
淘汰赛绑定
// Bind twitter typeahead ko.bindingHandlers.typeahead = { init: function (element,valueAccessor,allBindingsAccessor,viewmodel,bindingContext) { var $element = $(element); var allBindings = allBindingsAccessor(); var typeaheadArr = ko.utils.unwrapObservable(valueAccessor()); $element.attr("autocomplete","off") .typeahead({ 'source': typeaheadArr,'minLength': allBindings.minLength,'items': allBindings.items,'updater': allBindings.updater }); } };
淘汰viewmodel
function MyModel(){ var self = this; self.productName = ko.observable(); self.availableProducts = ['One','Two','Three']; } ko.applyBindings(new MyModel());
HTML
<input type="text" data-bind="typeahead:availableProducts,value:productName"/>
其余的东西只是来自Twitter Bootstrap.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。