我使用Kendo-Knockout。
我正在尝试将AutoComplete绑定到远程数据。 使用http://rniemeyer.github.com/knockout-kendo/web/AutoComplete.html的基本示例我尝试了以下内容。但是,在输入失去焦点之前,搜索不会更新。
“搜索”只会查找observableArray中已经的内容。
Kendo Autocomplete提供的唯一事件是“更改”,只有在输入失去焦点后才会触发。
你如何拦截按键,并访问search()的值,以便你可以拨打远程电话?
另外,一旦选择了该项,您将如何访问“ id ”的值?
由于 杰里米
<strong><p style="margin-top: 100px;" data-bind="text: search"></p></strong>
<input data-bind="kendoAutoComplete: { data: choices, value: search,
dataTextField: 'name', valueUpdate: 'afterkeydown' }" />
<script type='text/javascript'>
$(function () {
var myViewModel = function () {
var self = this;
this.choices = ko.observableArray([
{ id: "1", name: "apple" },
{ id: "1", name: "apple2" },
{ id: "1", name: "apple3" },
{ id: "2", name: "orange" },
{ id: "3", name: "banana" }
]);
this.selectedChoice = ko.observable();
self.search = ko.observable();
self.search.subscribe(function() {
console.log(self.search());
// would send search to $.ajax to get the remote data
});
};
ko.applyBindings(new myViewModel());
});
答案 0 :(得分:2)
可以这样做:
<input data-bind="kendoAutoComplete: {
data: {},
minLength: 3,
dataTextField: 'Name',
dataSource: {
type: 'odata',
serverFiltering: true,
serverPaging: true,
pageSize: 20,
transport: {
read: 'http://odata.netflix.com/Catalog/Titles'
}
},
value: selectedChoice }" />
您可以将其存储在JavaScript对象中并指向它。
答案 1 :(得分:0)
以下的淘汰赛绑定允许在视图模型中更改搜索过滤器的实时更新:
target_link_libraries(main ${mysql})
value是选定的值,advice是一个用结果填充的可观察数组,onSuggestionsChanged是viewmodel中的一个函数,每次用户更改字段中的文本时都会调用该函数。