我正在使用带有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/,但不知何故它不起作用..任何想法?
答案 0 :(得分:1)
他们有an example如何使用Knockout绑定正确传递其他选项:
<div id="GridDiv" data-bind="kendoGrid: gridOptions"></div>
<button data-bind="click: addRandomItem">add</button>
并将data
作为网格选项传递。