同时显示SAPUI5视图两次

时间:2019-06-12 11:19:00

标签: sapui5

我构建了一个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>

我希望这将一次加载我的主视图。但是它一遍又一遍地循环调用。

1 个答案:

答案 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 克里斯