2016-08-01 45 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 克里斯

相關問題