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

相关问题