3

我目前正在尝试分解大部分数据,这些数据由对 .NET Web 服务的 $ajax 调用提供,当数据映射到 Knockout 视图模型时,这会导致页面上的脚本超时。我在文档中注意到您应该能够将多个数据源绑定到一个视图模型,如下所示:

var viewModel = ko.mapping.fromJS(alice, aliceMappingOptions);
ko.mapping.fromJS(bob, bobMappingOptions, viewModel);

我已经在自己的代码中尝试过,如下所示,在第一遍我绑定到一个新的视图模型,然后在随后的遍中我尝试重新绑定到同一个视图模型:

if(currLoadIndex == 0)
{
    currViewModel = ko.mapping.fromJS(data, mappingOptions);
}
else{
    ko.mapping.fromJS(data, mappingOptions, currViewModel);
}

然而,当我将它绑定到我的模板时,这只是给我留下了我加载的最后一部分数据。我试过在我的“mappingOptions”中设置一个键,但这没有帮助。任何人都可以看到我做错了什么明显的事情吗?任何帮助将非常感激。

4

1 回答 1

0

可能不是最好的解决方案,但这解决了我的问题:

if(currLoadIndex == 0)
{
     currViewModel = ko.mapping.fromJS(data, mappingOptions);
}
else{
     var tmpModel = ko.mapping.fromJS(data, mappingOptions);
     for(i = 0; i < tmpModel.GetProductListResult().length; i++)
     {
         currViewModel.GetProductListResult().push(tmpModel.GetProductListResult()[i]);
     }
}
于 2013-04-09T14:18:43.773 回答