各位UI5开发者,
在UI5中,我们可以使用片段将一个视图分割成小块,您可以在其他视图中重用。这些片段主要包含UI的一部分,可以从视图或控制器中调用。当调用/打开一个片段时,家居智能化系统价格,你也可以向这个片段添加一个控制器,个人免费云服务器,比如在这个博客中:
https://blogs.sap.com/2015/05/21/use-of-fragments-in-sapui5-reusability/
我试过了,注意到我们添加到片段的控制器的行为与视图的普通控制器不同。你不能使用此.getModel()或此.getView(),"this"不是对片段的引用…因此,我在baseController中创建了一个函数,用于打开带有一些附加功能的片段。
在本博客中,我解释了在向片段添加控制器时,为什么我要这么做,我会解释我的函数是如何工作的。
我不会总是在片段中添加控制器。我只会(或者大部分时间)在片段包含对话框时这样做。我把所有的对话都放在碎片里。这使我对我的项目中的所有对话框有了一个很好的概述。你也可以用JavaScript创建一个对话框,但在大型项目中很难维护。为什么要向片段(包含对话框)添加控制器?有几个原因:
我在baseController中创建了一个泛型函数来打开片段。在这个函数中,我添加了几个参数:
Name:片段(和控制器)的名称Model:从调用模型的视图传递模型的选项(可选)updateModelAlways:让函数知道是否必须在每次打开对话框时更新模型,还是仅在第一次更新时更新模型。回调:控制器中的一个函数,可以从片段控制器执行数据:将信息从主视图传递到片段
如果在controller文件夹中可以找到控制器,该函数还将创建一个控制器。控制器文件夹中的文件夹结构必须与视图文件夹中的相同。如果函数找到一个控制器而不是当前控制器,那么它将调用此控制器中的onbeforeshow函数。onbeforeshow与视图中的onRouteMatched函数相当。它将在打开对话框之前被调用以进行一些初始化。
函数:
我还创建了一个函数来获取片段中的控件。这与视图不同,它是视图id、片段id和控件id的组合。片段id是我在打开片段的函数中添加的东西。
此函数可以这样使用:
最后但并非最不重要的是,我有一个关闭所有片段的函数。这使得在每个片段中有一个关闭按钮变得很容易。它只调用这个函数,返利联盟,它将关闭打开的片段。(如果片段包含一个对话框。)
现在我可以像这样从每个控制器打开一个片段:
我可以用回调函数处理它关闭的时刻:
我几乎在每个UI5项目中都使用它,点云,它已经帮助了我很多。希望它能帮助其他人或成为标准baseController的一部分
您可以在github上找到一个实时演示:
https://rawgit.com/lemaiwo/SAPUI5Fragments/master/webapp/index.html
源代码:
https://github.com/lemaiwo/SAPUI5Fragments
致以亲切的问候,
我是伍特·勒梅尔
,云服务器 免费