我正在将 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/但不知何故它不起作用..有什么想法吗?