1

ビューモデルのビューの場所を指定する方法を見つけようとしています。すべて共通の先祖を持つビューモデルのコレクションがあります。

それらすべてに同じビューを使用してもらいたいのですが、それ自体が動的構成を使用してページを構築します。

ありがとう

4

1 に答える 1

2

http://durandaljs.com/documentation/View-Locator/で Durandal の View Locator のドキュメントを確認してください。

あなたの要件を正しく理解していれば、getView()関数またはviewUrlプロパティを VM に追加するだけで十分です。

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