我构建了一个sapui5应用程序,该应用程序显示了与SAP工厂有关的信息。现在,我需要在同一页面上显示两次相同的视图,但是要显示两种不同植物的信息。想象一下,就像两个iFrame。该应用程序应该只能在一个视图中运行(如现在),它也应该能够在同一页面上多次显示数据。
为解决此问题,我构建了一个附加视图(splitview),其中包含一个组件容器以加载“真实”视图(主视图)。最终以连续循环结束。
这就是我尝试构建splitview的方式
<mvc:View xmlns:core="sap.ui.core" xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m" xmlns:l="sap.ui.layout"
controllerName="zqinsplotlist.zqinsplotlist.controller.splitview" xmlns:html="http://www.w3.org/1999/xhtml">
<App>
<pages>
<Page title="Title">
<content>
<l:HorizontalLayout class="sapUiContentPadding">
<ComponentContainer xmlns="sap.ui.core" name="zqinsplotlist.zqinsplotlist"
settings='\{ "componentData" : \{ "startupParameters" : \{"Werks" : ["1001"], "Zfcod" : ["PLOS"], "Herkunft" : ["03"] \} \}\}'/>
<Text text="Hello Split"/>
</l:HorizontalLayout>
</content>
</Page>
</pages>
</App>
</mvc:View>
我希望这将一次加载我的主视图。但是它一遍又一遍地循环调用。
答案 0 :(得分:0)
为什么不尝试……。像这样:
<mvc:View
xmlns:core="sap.ui.core"
xmlns:mvc="sap.ui.core.mvc"
xmlns="sap.m"
xmlns:l="sap.ui.layout"
controllerName="zqinsplotlist.zqinsplotlist.controller.splitview"
xmlns:data="http://schemas.sap.com/sapui5/extension/sap.ui.core.CustomData/1"
xmlns:html="http://www.w3.org/1999/xhtml">
<App>
<l:HorizontalLayout class="sapUiContentPadding">
<mvc:XMLView
viewName="zqinsplotlist.zqinsplotlist.view.MyView"
data:some="data to distinguish the views"
data:instance="1"
/>
<mvc:XMLView
viewName="zqinsplotlist.zqinsplotlist.view.MyView"
data:some="other data to distinguish this view from the above"
/>
</l:HorizontalLayout>
</App>
</mvc:View>
在MyView的控制器中,通过sth区分两个视图实例。像这样:
if (this.getView().data('instance') === 1) {
// do stuff
}
应该可以,但是我还没有测试。不能100%保证自定义数据可以在从XML实例化的视图上工作。好吧,应该...
BR 克里斯