我正在使用 KoGrid 进行数据绑定。下面的代码似乎工作得很好:
var ViewModel = { PrizeCollection : 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>
这一切都很棒。我可以绑定一次,当新数据来自服务器时,我可以多次绑定它,它似乎工作得很好。
现在,当我制作我的 ViewModel 时,如下所示:
ViewModel = function(){ var PrizeCollection = ko.observableArray(); }
并且配合HTMl上的同一个模板使用,第一次数据加载完全不是问题。但是第二次加载它时,浏览器挂起,当我查看 firebug 时,它给了我以下错误:
data.column is not defined.
基本上 data.column 是空的。
我不确定为什么相同的数据有问题。我也试过解除绑定
ko.cleanNode(document.getElementById("KoGridContainer"));
那也不是很有帮助
有什么建议么?