本質上,我試圖實現RobN極其簡單的使用'模板'數據綁定的模板切換器http://jsfiddle.net/rniemeyer/XYz8M/。在Knockout中實現菜單 - 在不同視圖模型之間切換視圖
(---SO wants code here - see fiddle for complete code---)
<div id="templateContent" data-bind='template: { name: currentView() }'></div>
var viewModel = {
currentView: ko.observable("template-1"),
toggleView: function() {
this.currentView(this.currentView() === "template-1" ? "template-2" : "template-1");
}
};
ko.applyBindings(viewModel);
我已經看到了很多其他簡單的例子,這樣做的,所有正在使用的每個加載模板相同ViewModel類。例外 - RobN的SamplePresentation應用程序(我沒有足夠的代表點來發布另一個鏈接),同時令人印象深刻,我發現很難連接到我的noobie KO體驗。我認爲他在他的section.activate()方法中這樣做了,但是,對我來說還不清楚。
我想在真實應用中使用這個概念,但有綁定上下文問題。這裏是我想要做的事:http://jsfiddle.net/jockor/DSEDh/4/
This line intentionally left blank (please see fiddle vs. mangling code here)
基本上,當按下導航鏈接/按鈕,我只是想換出主體內容面板另一個模板。該模板需要自己的viewModel支持自己的數據。
上面的小提琴是我在這個概念的簡化版本 - 只是試圖在貓和狗面板之間切換。我遇到的是綁定到'模板'data-bind的數據用於加載的cat/dog模板。
有人可以告訴我,如果我這樣做是否正確,或者如果我濫用'模板'綁定概念?
謝謝先生,你的確是Los Frijoles!我正在尋找一種使用多個ViewModel的方法,我認爲你已經找到了一個巧妙的方法來做到這一點。我確實嘗試了幾種不同的方式來交換數據,但無法獲得正確的組合。我會在我的應用程序中試試這個,看看我是否遇到了您懷疑可能會等待的時間問題。再次感謝。 – user2003699 2013-04-25 19:10:55