1

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/を追加しましたが、どういうわけか機能しません..何か考えはありますか?

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 に答える