Kendo-Knockout - 如何将AutoComplete绑定到远程数据?

时间:2013-02-13 20:13:19

标签: knockout.js kendo-ui

我使用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());
});

2 个答案:

答案 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对象中并指向它。

示例:http://jsfiddle.net/rniemeyer/m8vVA/

答案 1 :(得分:0)

以下的淘汰赛绑定允许在视图模型中更改搜索过滤器的实时更新:

target_link_libraries(main ${mysql})

value是选定的值,advice是一个用结果填充的可观察数组,onSuggestionsChanged是viewmodel中的一个函数,每次用户更改字段中的文本时都会调用该函数。

Kendo UI Filter event description