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 を取得しています。さらに、2 列ではなく then に置き換えるthis.data.push(new GridItem(item));
とthis.data.push(item);
、10 列になります (item には 10 メンバーが含まれるため)。
バインドが正しく機能しないのはなぜですか?
更新: jsfiddle http://jsfiddle.net/mTqdE/14/を追加しましたが、どういうわけか機能しません..何か考えはありますか?