SAPUI5路由跳转报错Control with ID app could not be found问题咨询
问题原因
报错Error: Control with ID app could not be found - Target: View2的核心是SAPUI5路由无法找到你配置的id为app的容器控件,触发原因有两个:
- 未在manifest中配置
app.view作为应用根视图,导致该视图内id为app的App控件从未被实例化 - 子视图View1中多余嵌套了
<App>标签,不符合路由的层级规范(路由要求所有子视图都挂载到根App控件的pages聚合下,子视图自身不需要再包含App控件)
解决步骤
1. 新增manifest根视图配置
在manifest.json的sap.ui5节点下添加根视图配置,指定应用启动时首先加载app.view作为根容器:
"sap.ui5": { "rootView": { "viewName": "emergencyreport1.view.app", "type": "XML", "async": true, "id": "appRootView" }, // 保留你原有routing等其他配置不变 }
2. 修正View1.xml结构
去掉View1中多余的<App>标签,改用<Page>作为内容根节点,同时补充缺失的core命名空间声明:
<mvc:View controllerName="emergencyreport1.controller.View1" xmlns:mvc="sap.ui.core.mvc" xmlns:core="sap.ui.core" displayBlock="true" xmlns="sap.m"> <Page title="View1"> <content> <core:Icon src="sap-icon://display-more" press="ondisplay" /> </content> </Page> </mvc:View>
3. 修正View2.xml结构
按同样规则修改View2.xml,用<Page>作为根节点放置内容,不要嵌套<App>标签。
内容的提问来源于stack exchange,提问作者Aanchal Gupta
相关产品推荐
相关产品推荐

