我创建了一个simple SAPUI5 Application,可以作为小部件部署到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>
子视图是:
edit.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>
render.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-view">
<html:div id="appViewer" class="app-viewer">render</html:div>
</VBox>
Github上提供的完整示例应用程序源:https://github.com/anasnakawa/ui5views
要重现此问题,请按以下步骤操作:
.app-viewer
或.app-edit
)预期结果:
子视图将保留在根视图中
实际结果:
子视图不在根视图中(document.querySelectorAll( '.app-viewer' )
将显示视图位于页面上的其他位置)