2016-08-01 8 views
0
<core:mvc.XMLView id="{path:' AssignmentModel>/AssignmentType' ,formatter:'.getViewName'}" 
      viewName="{path:' AssignmentModel>/AssignmentType' ,formatter:'.getViewName'}" 
      height="100%" visible="true"/> 

assignemnt型に基づいてビューをロードします。 タイプに基づいてコントローラからビューを動的にロードしようとしました。 しかし、期待通りに動作しません。IDとビュー名を動的に設定できますか?

+0

なぜルーティングメカニズムを使用して、割り当てタイプに基づいてビューに移動していませんか? – Qualiture

答えて

0

XMLViewでビューを使用すると、そのビューは一度作成されます。あなたのバインディングが機能していたとしても、それは一度だけ解決されることを意味するOneTimeになります。これは明らかにあなたが探しているものではありません。

既に説明した品質としてRoutingを使用するか、コントローラからコンテンツを動的にロードして手動でビュー階層に挿入する必要があります。あなたはまだこのような性質の変化を観察するためにPropertyBindingを使用することができます。

var binding = new sap.ui.model.PropertyBinding("AssignmentModel", "/AssignmentType"); 
binding.attachChange(function() { 
    var sViewName = this.getViewName(this.getModel("AssignmentModel").getProperty("/AssignmentType"); 
    var oView = sap.ui.xmlview({ 
    id: sViewName 
    viewName: sViewName 
    }); 
    // pack your view whereever you want, clean the old view before 
    this.getView().addContent(oView); 
}, this) 

あなたが使用しているモデルに応じsap.ui.model.odata.ODataPropertyBindingを使用する必要があります。

上記のコードはテストされていませんが、動作するはずです。

GL クリス

関連する問題