我试图找到一种方法来指定视图模型的视图的位置。我有一个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/

10-13 02:30