当ViewModel与构造函数模式一起使用时,第二次绑定与KoGrid失败

时间:2012-09-24 17:05:50

标签: javascript jquery data-binding knockout.js

我正在使用KoGrid进行数据绑定。并且以下代码看起来效果很好:

var ViewModel = {  prizeCollection:ko.observableArray; }

然后使用PrizeCollection(数据)将其绑定到代码中的某个位置;当我在以下模板中使用它时,它的效果非常好:

 <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"));

那也不是那么有用

有什么建议吗?

0 个答案:

没有答案