当我尝试使用knockout绑定数据时,页面加载工作正常。但是当回发它会抛出一个错误“你不能多次将绑定应用于同一个元素。”还有重复错误的数据。
脚本和视图如下所示。从控制器返回所需的viewmodel。
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"));
> }
> }); }
查看:
> <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>
感谢
答案 0 :(得分:1)
原因是,ko.applyBindings(dataCollection, document.getElementById("shiftInfo"));
不止一次被调用。
我建议你的文件准备好了吗
ko.applyBindings(dataCollection, document.getElementById("shiftInfo"));
并将其从函数中删除
function loadShiftSummary() {
$.ajax({
url: 'testurl',
type: 'post',
contentType: 'application/json',
success: function (data) {
dataCollection(ko.utils.unwrapObservable( ko.mapping.fromJS(data.rosterViewModels)));
}
});
}
每页/节不应多次调用{p> ko.applyBindings