1
当我尝试使用淘汰赛时,页面加载数据工作正常时绑定数据。但是,当回发它时会抛出一个错误“你不能多次绑定到同一个元素。”还有数据重复错误的方式。DataBinding与淘汰赛问题
脚本和视图如下所示。从控制器返回所需的视图模型。
PLZ帮我解决这个问题..
SCRIPT:
> var dataCollection = ko.observableArray();
>
> function loadShiftSummary() {
> ko.cleanNode($("#shiftInfo"));
> $.ajax({
> url: 'testurl',
> type: 'post',
> contentType: 'application/json',
> success: function (data) {
>
> dataCollection = ko.mapping.fromJS(data.rosterViewModels);
> ko.applyBindings(dataCollection, document.getElementById("shiftInfo"));
> }
> }); }
VIEW:
> <tbody data-bind="foreach: dataCollection">
> <tr>
> <td data-bind="text: Description"></td>
>
> @for (int i= 0; date < 30; i++)
> {
> <td data-bind="text: $data.CountArray()[@i]"></td>
> }
> </tr>
> </tbody>
感谢
这段代码dataCollection = ko.mapping.fromJS(data.rosterViewModels);应该是dataCollection(ko.mapping.fromJS(data.rosterViewModels)),否则dataCollection将引用新的数组,并且ui将引用不同的数组,因此数据将不会在ui中更新。 –
@DhanaKrishnasamy是的,你是正确的,我错过了那部分,现在更新代码,我通常也会在那个位置添加'ko.utils.unwrapObservable' – Armand
谢谢你Armand ......... for superb comment – user2838480