データ バインディングに 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"));
それもあまり参考にならなかった
助言がありますか?