如何将XML Fragment添加至XML View?能否直接在视图中使用?
直接在View中使用SAPUI5 Fragment的方法
当然可以直接在SAPUI5的View中使用Fragment!这是很常见的开发方式,不用非得通过Controller来加载,下面就结合你的场景说明具体操作:
1. 先确保命名空间正确声明
首先,在你要引用Fragment的XML View根标签里,需要声明Fragment用到的所有对应命名空间:
xmlns:core="sap.ui.core":用于调用Fragment引用标签xmlns:f="sap.ui.layout.form":对应你Fragment里的f:SimpleForm组件xmlns:l="sap.ui.layout":对应你Fragment里的l:GridData布局配置
2. 在View中直接引用Fragment
在View需要放置Fragment内容的位置,添加<core:Fragment>标签,指定Fragment的完整命名空间路径和类型即可:
示例XML View代码
<mvc:View xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m" xmlns:core="sap.ui.core" xmlns:f="sap.ui.layout.form" xmlns:l="sap.ui.layout" controllerName="你的控制器命名空间"> <!-- 这里可以放置View的其他原有内容 --> <!-- 直接引用你的地址Fragment --> <core:Fragment fragmentName="你的项目命名空间.view.fragments.AddressFragment" type="XML" /> <!-- 这里可以放置View的其他原有内容 --> </mvc:View>
关键参数说明
fragmentName:填写Fragment的完整命名空间路径,根据你的文件结构(截图显示Fragment在view/fragments目录下),替换成你实际的项目命名空间+路径即可,比如项目命名空间是com.yourteam.salesapp,那路径就是com.yourteam.salesapp.view.fragments.AddressFragmenttype="XML":因为你的Fragment是XML类型,所以指定该参数
3. 效果验证
完成配置后,运行应用时View会自动加载并渲染Fragment内的所有内容(包括你写的SimpleForm和Table),和通过Controller加载的效果完全一致。
注意事项
- 要保证Fragment的文件名和命名空间路径严格对应,SAPUI5对命名空间与文件路径的匹配要求很高
- 如果Fragment里用到了其他命名空间组件,一定要在引用它的View里同步声明对应命名空间,否则会出现XML解析错误
内容的提问来源于stack exchange,提问作者softshipper
相关产品推荐
相关产品推荐

