1

我正在尝试找到一种方法来指定视图模型的视图位置。我有一组视图模型,它们都有一个共同的祖先。

我希望他们都使用相同的视图,它本身将使用动态组合构建页面。

谢谢

4

1 回答 1

2

在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];
}
于 2013-06-12T16:25:45.367 回答