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