Javascript 剔除映射-将多个数据源映射到一个视图模型中

Javascript 剔除映射-将多个数据源映射到一个视图模型中,javascript,.net,json,knockout.js,knockout-mapping-plugin,Javascript,.net,Json,Knockout.js,Knockout Mapping Plugin,我目前正在尝试分解大量数据,这些数据是由对.NET webservice的$ajax调用提供的,当数据映射到淘汰视图模型时,会导致页面上的脚本超时。我在文档中注意到,您应该能够将多个数据源绑定到一个viewmodel,如下所示: var viewModel = ko.mapping.fromJS(alice, aliceMappingOptions); ko.mapping.fromJS(bob, bobMappingOptions, viewModel); 我在自己的代码中尝试了这一点,如下

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

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

然而,当我将数据绑定到模板时,这只剩下最后一段加载的数据。我曾尝试在“映射选项”中设置一个键,但没有效果。有人能看出我做错了什么吗?任何帮助都将不胜感激。

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

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]);
     }
}
if(currloandex==0)
{
currViewModel=ko.mapping.fromJS(数据,映射选项);
}
否则{
var tmpModel=ko.mapping.fromJS(数据,映射选项);
对于(i=0;i
您能否发布一个更完整的视图模型的JSFIDLE,并可能包含您的Web服务返回的JSON数据样本?通常,每组数据将由ObservalArray或完全独立的viewmodel表示,具体取决于您希望如何使用数据。