1

我正在使用 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"));

那也不是很有帮助

有什么建议么?

4

0 回答 0