1

我正在将 knockout.js 与 Kendo-UI 一起使用。
我有这个网格模型:

var GridModel = function (options) {
        function GridItem(item) {
            return { Id: item.Id() || '', Description: item.Description() };
        }

        $.extend(this, {
            data: ko.observableArray(),
            gridOptions: {
                pageable: true,
                pageSize: 5,
                sortable: true,
                scrollable: false,
                selectable: true,
                columns: [
                        { field: 'Id', title: 'title1', width: '80px', groupable: false },
                        { field: 'Description', title: 'title2', width: '200px', groupable: false }
                ]
            }
        });

        this.addItem = function (item) {
            this.data.push(new GridItem(item));
        }
    };

这是我的标记:

<div id="GridDiv" data-bind="kendoGrid: data, gridOptions: gridOptions"></div>

这就是我应用绑定的方式:

ko.applyBindings(new GridModel(), $('#GridDiv').get(0));

由于某种原因,列的标题没有绑定,而不是 title1 和 title2,我得到了 Id 和 Description。此外,如果我this.data.push(new GridItem(item));this.data.push(item);then 而不是 2 列替换,我会得到 10 列(因为 item 包含 10 个成员)。

为什么绑定不能正常工作?

更新:我添加了一个 jsfiddle http://jsfiddle.net/mTqdE/14/但不知何故它不起作用..有什么想法吗?

4

1 回答 1

1

他们有一个示例如何使用 Knockout 绑定正确传递其他选项:

这是工作示例

<div id="GridDiv" data-bind="kendoGrid: gridOptions"></div>
<button data-bind="click: addRandomItem">add</button>

data并作为网格选项传递。

于 2012-11-05T14:07:56.487 回答