我正在尝试找到一种方法来为viewmodel指定视图的位置。我有一个viewModels集合,都有一个共同的祖先。
我希望他们都使用相同的视图,它本身将使用动态合成来构建页面。
由于
答案 0 :(得分:2)
在http://durandaljs.com/documentation/View-Locator/
结帐Durandal的查看定位器文档如果我正确理解您的要求,那么向vms添加getView()
函数或viewUrl
属性应该可以胜任。
getView()
示例(通过为每个vm添加多个视图,与您想要的相反,但您明白了这一点。)
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];
}