我正在尝试分解大部分数据,这是由对.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'中设置一个键,但这没有帮助。任何人都可以看到任何明显的错误吗?任何帮助将不胜感激。
答案 0 :(得分: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]);
}
}