1

データ バインディングに KoGrid を使用しています。そして、次のコードはすべてうまくいくようです:

var ViewModel = { 賞品コレクション : ko.observableArray; }

次に、コード内のどこかに PrizeCollection(data); でバインドします。次のようにテンプレートで使用すると、すべてうまく機能します。

 <div data-bind="koGrid: { data: PrizeFulfilmentStatuses  , columnDefs: [ { field: 'Description', width: 140 },
                                        { field: 'Order', width: 100, headerClass: 'specialHeader' },
                                        { field: 'ColorHex',  width: 150,cellTemplate: 'editTemplate' },
                                        { field: 'Editable', width: 180, cellClass: 'specialCell' },
                                        { field: 'ID', width: 170 }, { field: 'Who', width: 170 }],
                             autogenerateColumns: false,
                             isMultiSelect: false,
                             enablePaging: true
                             }  "></div>

それはすべて素晴らしいです。1 回バインドでき、新しいデータがサーバーから送信されたときに複数回バインドでき、すべてうまく機能しているように見えます。

さて、ViewModel を次のようなものにすると、次のようになります。

ViewModel = function(){ var PrizeCollection = ko.observableArray(); }

HTMl で同じテンプレートと組み合わせて使用​​すると、初回のデータ ロードはまったく問題になりません。しかし、2回目にロードすると、ブラウザがハングし、firebugを調べると、次のエラーが表示されます:

data.column is not defined.

基本的に data.column は空です。

なぜ同じデータに問題があるのか​​ わかりません。私もバインドを解除しようとしました

 ko.cleanNode(document.getElementById("KoGridContainer"));

それもあまり参考にならなかった

助言がありますか?

4

0 に答える 0