Kendo组合框用虚拟方式检索所选项目

时间:2016-08-10 08:28:07

标签: javascript kendo-ui kendo-combobox

我有一个启用了虚拟功能的kendo组合框,我想重新选择所选项目,因为我需要更多信息。

在虚拟加载后选择项目时,我得到了未定义。

这是我的代码

$scope.select_item_options = {
        dataValueField: "id",
        dataTextField: "description_nhl",
        template: "#= description #",
        virtual: true,
        filter: "contains",
        change: function(e) {
            var selected_index = this.selectedIndex;
            if (selected_index < 0) {
                delete $scope.work_item.item_id;
            } else {
                var item = this.dataItem(this.select());
                console.log(item);
                console.log(this.dataItem(selected_index));
                // undefined here
            }
            $scope.$apply();
        },
        dataSource: new kendo.data.DataSource({
            transport: {
                read: {
                    type: "GET",
                    url: APP_CONFIG.api.base_url + "/items/itemTypes/AC",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    beforeSend: function(xhr) {
                        xhr.setRequestHeader('Authorization', storageService.getValue('auth_token'));
                    },
                    complete: function(result, status) {
                        if (result.status !== 200 || !result.responseJSON.fn.result.done) {
                            return httpService.callbackOnError(result.responseJSON, result.status);
                        }
                    }
                }
            },
            schema: {
                data: 'data',
                total: function(data) {
                    return data.dataCount;
                }
            },
            serverPaging: true,
            serverSorting: true,
            serverFiltering: true,
            pageSize: 5,
            sort: {field: "description", dir: "asc"}
        })
    };

1 个答案:

答案 0 :(得分:1)

已解决更改

var item = this.dataItem(this.select());

var item = this.dataItem();