我想在使用 knockout.js 在文本框中输入一些文本时创建一个快速查找。即每当用户在文本框中键入与在文本框中输入的字符串相关的数据时,以文本框下的下拉形式显示。谁能告诉我如何实现这个功能?
非常感谢。
我想在使用 knockout.js 在文本框中输入一些文本时创建一个快速查找。即每当用户在文本框中键入与在文本框中输入的字符串相关的数据时,以文本框下的下拉形式显示。谁能告诉我如何实现这个功能?
非常感谢。
是的,您可以在按下键后强制值突变:
<input data-bind="value: someValue, valueUpdate: 'afterkeydown'" />
knockout.js主页上有完整的代码示例:
<p>Your value: <input data-bind="value: someValue, valueUpdate: 'afterkeydown'" /></p>
<p>You have typed: <span data-bind="text: someValue"></span></p> <!-- updates in real-time -->
<script type="text/javascript">
var viewModel = {
someValue: ko.observable("edit me")
};
</script>
这是一些示例代码:
var VM = function () {
this.text = ko.observable('');
this.suggestionStrings = [
'Hello',
'world',
'name',
'richard'
];
this.suggestions = ko.computed(function () {
var text = this.text();
return ko.utils.arrayFilter(this.suggestionStrings, function (str) {
return new RegExp(text, 'i').test(str);
});
}, this);
};
ko.applyBindings(new VM());
这里的例子:http: //jsfiddle.net/badsyntax/f8aCY/