我在这一点上:)
// Bootstrap.Typeahead binding: presently requires custom version from gist: https://gist.github.com/1866577. // Use like so: data-bind="typeahead: { target: selectedNamespace,source: namespaces }" ko.bindingHandlers.typeahead = { init: function(element,valueAccessor) { var binding = this; var elem = $(element); var value = valueAccessor(); // Setup Bootstrap Typeahead for this element. elem.typeahead( { source: function() { return ko.utils.unwrapObservable(value.source); },onselect: function(val) { value.target(val); } }); // Set the value of the target when the field is blurred. elem.blur(function() { value.target(elem.val()); }); },update: function(element,valueAccessor) { var elem = $(element); var value = valueAccessor(); elem.val(value.target()); } };
我有X类,有4个属性.
任何的想法?
解决方法
在.typeahead调用中,传递一个将查看其他属性的
matcher function:
elem.typeahead({ source: function() { return ko.utils.unwrapObservable(value.source); },onselect: function(val) { value.target(val); },matcher: function(item) { // Check if it matches Foo,Bar,or Baz properties. return item.Foo.indexOf(this.query) >= 0 || item.Bar.indexOf(this.query) >= 0 || item.Baz.indexOf(this.query) >= 0; } });