云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

腾讯云_阿里云域名证书_新用户

小七 141 0

腾讯云_阿里云域名证书_新用户

各位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

致以亲切的问候,

我是伍特·勒梅尔

,云服务器 免费