1

我创建了一个简单的 SAPUI5 应用程序,它可以作为小部件部署到 SAP HANA Cloud Portal。此应用程序包含一个根 xml 视图,它加载两个嵌套的 xml 视图,并且其中没有任何复杂的逻辑。

在 SAP HANA Cloud Portal 上,当将此小部件添加到同一站点的多个页面时,一切看起来都很好。但是一旦您开始在站点页面之间导航,根 xml 视图将失去其子视图 html。

既然应用程序不包含任何复杂的逻辑,为什么根视图会丢失那些子视图?

以及如何在站点导航发生后维护子视图内容?

根视图代码如下:

<mvc:View controllerName="ui5views.controller.RootApp" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:mvc="sap.ui.core.mvc" xmlns:core="sap.ui.core" xmlns="sap.m">
  <mvc:XMLView id="renderView" viewName="ui5views.view.render" />
  <mvc:XMLView id="editView" viewName="ui5views.view.edit" />
</mvc:View>

子视图是:

  1. 编辑.view.xml

    <mvc:View xmlns:core="sap.ui.core" xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m" controllerName="ui5views.controller.render"
    xmlns:html="http://www.w3.org/1999/xhtml">
    <VBox id="app" class="app-root-edit">
        <html:div id="appEdit" class="app-edit">edit</html:div>
    </VBox>
    

  2. 渲染视图.xml

    <mvc:View xmlns:core="sap.ui.core" xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m" controllerName="ui5views.controller.render"
    xmlns:html="http://www.w3.org/1999/xhtml">
    <VBox id="app" class="app-root-view">
        <html:div id="appViewer" class="app-viewer">render</html:div>
    </VBox>
    

Github 上提供的完整示例应用程序源:https ://github.com/anasnakawa/ui5views

要重现此问题,请按照下列步骤操作:

  1. 存储库克隆到 SAP Web IDE
  2. 部署到 SAP HANA 云门户
  3. 在 SAP HCP 上创建站点
  4. 创建另一个网站页面
  5. 将ui5views添加到第一页
  6. 检查小部件,并查找任何子视图(.app-viewer.app-edit
  7. 导航到另一个站点页面,并添加 ui5views 小部件
  8. 导航回第一页

预期成绩:

子视图将保留在根视图内

实际结果:

子视图不在根视图内(document.querySelectorAll( '.app-viewer' )将显示视图放置在页面上的其他位置)

4

0 回答 0