本质上,我试图实现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