2013-04-09 114 views
3

我目前正試圖分解大量的數據,這是由$ ajax調用.NET Web服務提供的,導致頁面上的腳本超時當數據被映射到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

你可以發佈更完整的視圖模型的的jsfiddle,也許包括你的web服務返回的JSON數據的樣本? 通常,每組數據都將由observableArray或完全獨立的視圖模型表示,具體取決於您希望如何使用數據。 – 79IT 2013-05-25 20:32:42

回答

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