2015-04-08 50 views
4

我想將頁面設置爲一個單頁面應用程序使用淘汰賽,我已經拆分它如下圖所示,但不知道如何將幾個viewModels綁定到相同的HTML頁面。 enter image description here如何使用淘汰賽在單個頁面中綁定多個視圖模型?

+0

看起來像AJAX工作!通過加載Ajax請求的不同的HTML視圖模型「頁」 ...... – jbutler483

+1

使用像迪朗達爾一個SPA引擎 – Anders

+0

看看[視圖模型合併]如何將一對夫婦的ViewModels合併成[1] 1 [ 1]:http://stackoverflow.com/questions/29294373/iam-unable-to-applybindings-in-knockout-is-this-correct-approach/29342312#29342312 –

回答

9

您可以使用ko.applyBindings(viewModel, element)來綁定適用於不同的元素,採用不同的ViewModels這樣的:你不能超過一個視圖模型綁定到同一元素或淘汰賽將拋出一個錯誤。

// Element 
var element = document.getElementById('myElement'); 
ko.applyBindings(new MyViewModel(), element); 

// Element 1 
var element1 = document.getElementById('myElement1'); 
ko.applyBindings(new MyViewModel1(), element1); 

你可以閱讀更多關於此這裏:

http://knockoutjs.com/documentation/observables.html

2

退房的參考文檔: http://knockoutjs.com/documentation/observables.html

ko.applyBindings函數有兩個參數,第一個是視圖模型中,第二個(可選)是應該應用的dom元素。您可以將多個視圖模型應用於頁面上的每個容器元素。

ko.applyBindings(viewmodel1, $("#container1")[0]); 
ko.applyBindings(viewmodel2, $("#container2")[0]); 
ko.applyBindings(viewmodel3, $("#container3")[0]); 
0

您可以使用
ko.applyBindings(視圖模型,元件) 「與」 結合

+0

請格式化您的代碼.. –

+0

您能詳細解釋一下您的答案嗎?添加關於您提供的解決方案的更多描述? – abarisone