我试图找到一种方法来指定视图模型的视图的位置。我有一个viewModels集合,所有这些都有一个共同的祖先。
我希望他们都使用相同的视图,该视图本身将使用动态合成来构建页面。
谢谢
最佳答案
在http://durandaljs.com/documentation/View-Locator/处签出Durandal的View Locator文档
如果我能正确理解您的要求,则可以在vms中添加getView()
函数或viewUrl
属性。getView()
示例(通过为每个虚拟机添加多个视图来实现您想要的相反操作,但是您明白了这一点)。
http://dfiddle.github.io/dFiddle-1.2/#/view-composition/getView
var getView = ko.computed(function(){
var roleViewMap = {
'default': 'viewComposition/getView/index.html',
role1: 'viewComposition/getView/role1.html',
role2: 'viewComposition/getView/role2.html'
};
this.role = (role() || 'default');
return roleViewMap[this.role];
});
viewUrl
示例http://dfiddle.github.io/dFiddle-1.2/#/view-composition/SO16483013
function viewUrl(){
this.role = (role() || 'default');
var roleViewMap = {
'default': 'samples/viewComposition/SO16483013/index.html',
role1: 'samples/viewComposition/SO16483013/role1.html',
role2: 'samples/viewComposition/SO16483013/role2.html'
};
return roleViewMap[this.role];
}
关于javascript - Durandal-在viewmodel中为模块指定 View ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17069086/