如何重用SAPUI5视图?
我为一个SAP UI5页面创建了一个标题,现在我希望在另一个页面中有一个类似的标题,其中包含几乎相同的组件。因此,为了代码重用,我尝试:如何重用SAPUI5视图?,sapui5,Sapui5,我为一个SAP UI5页面创建了一个标题,现在我希望在另一个页面中有一个类似的标题,其中包含几乎相同的组件。因此,为了代码重用,我尝试: 将标题放在单独的UI5视图中 使用var pageHeader=sap.ui.jsview(“appHeader”、“view.appHeader”)创建此header实例 将pageHeader作为内容添加到customHeader字段中的页面 但这不起作用,没有给出任何错误! 那么,是否可以通过视图重用自定义UI组件?如果可以,如何实现 这个问题可能与
- 将标题放在单独的UI5视图中
- 使用var pageHeader=sap.ui.jsview(“appHeader”、“view.appHeader”)创建此header实例李>
- 将pageHeader作为内容添加到customHeader字段中的页面
那么,是否可以通过视图重用自定义UI组件?如果可以,如何实现 这个问题可能与使用
sap.ui.jsview的几个变量有关:
- 视图定义
- 视图实例化
调用var pageHeader=sap.ui.jsview(“appHeader”、“view.appHeader”)
要求框架在项目中查找名为“view.appHeader”
的视图。如果存在具有此名称的视图,它将创建该视图的新实例,并为其分配ID“appHeader”
。如果在应用程序的几个模块中使用相同的语句,则每次都会要求框架创建具有相同ID的视图实例。这可能会导致以下错误:
正在添加具有重复id“appHeader”的元素。因此,在重用视图时,避免在实例化中使用ID参数
在重用视图时应该考虑的另外一件事:因为视图有一个函数名为“代码> GigControlReNeord”,它返回用于此视图的控制器的名称,框架将为您实例化的每个视图创建该控制器的新实例。这不是不好的行为,但应该知道,以避免问题
一目了然:
视图定义:
sap.ui.jsview(sId, vView) // (e.g. in pageHeader view file)
视图实例化:
sap.ui.jsview(sName) // (e.g. calling/reusing it in several files)
在您的情况下:
var pageHeader=sap.ui.jsview(“view.appHeader”)
应该这样做
编辑/附录:
从UI5的1.15版开始,您还可以使用片段作为重用视图的轻量级替代方案。有一些很好的例子,解释了片段的优点以及它们与普通视图的区别。@DerZyklop:谢谢,修复了它!