knockout js binding不能正确绑定网格标题

时间:2012-11-05 13:16:26

标签: javascript knockout.js kendo-ui

我正在使用带有Kendo-UI的knockout.js 我有这个网格模型:

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);而不是2列,我会得到10列(因为项目包含10个成员)。

为什么绑定无法正常工作?

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

1 个答案:

答案 0 :(得分:1)

他们有an example如何使用Knockout绑定正确传递其他选项:

Here's working example

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

并将data作为网格选项传递。