ビューモデルのビューの場所を指定する方法を見つけようとしています。すべて共通の先祖を持つビューモデルのコレクションがあります。
それらすべてに同じビューを使用してもらいたいのですが、それ自体が動的構成を使用してページを構築します。
ありがとう
ビューモデルのビューの場所を指定する方法を見つけようとしています。すべて共通の先祖を持つビューモデルのコレクションがあります。
それらすべてに同じビューを使用してもらいたいのですが、それ自体が動的構成を使用してページを構築します。
ありがとう
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];
}