0

我正在使用导航和路由概念创建应用程序,但无法理解需要在 Component.js 中指定的元数据

下面是什么意思:-

"controlId": "app",
"controlAggregation": "pages",

当我检查文档Component.js时,它被称为 -

targetParent: "myViewId",
targetControl: "app",
targetAggregation: "pages",

有人可以解释上述两者之间的区别,它的确切含义会有所帮助吗?

4

2 回答 2

2

以下面的 XML 视图代码为例,我将详细说明元数据配置。

<core:View xmlns:core="sap.ui.core" xmlns="sap.m" controllerName="Demo.view.Main" displayBlock="true" height="100%">
    <App id="app">
    </App>
</core:View>

App控件是 UI5 移动应用程序的根元素。它具有pages聚合,因为它从 扩展NavContainer

targetControl: "app",
targetAggregation: "pages"

targetControl使用用于显示页面的控件 ID 指定。在上面的 XML 中,App控件的 ID 为“ app ”。因此,您的所有视图都将置于控制pages聚合中App

现在,您可能想知道如何将视图放置在pages聚合中。如果您查看pages聚合中允许的控件类型是Control. 任何扩展类的控件都Control可以放在pages. App与Control 一样,添加到聚合View中也是有效的。pages

因此,应用程序中的所有视图都放置在App.

"targetParent": "myViewId"

targetParent只不过App是放置控件的视图。

关于上面和这个之间的区别

"controlId": "app",
"controlAggregation": "pages"

在较新版本的 SAPUI5 中,我们在manifest.json文件而不是Component.js文件中指定配置。所以,你会发现他们的这个配置。它们是相同的,只是名称不同。

于 2016-06-02T13:38:13.323 回答
0

以下是导航的配置参数

  • routes :- routes 参数定义了一个路由配置数组。
  • config :- config 参数定义路由配置的默认值。
  • view :- view 参数包含在第一次匹配路由时创建的视图的名称。要将视图放置在控件中,请使用 targetAggregation 和 targetControl。视图只创建一次。
  • targetParent :- 目标父参数定义了 targetControl 参数的父 ID。
  • targetControl :- 视图被放入容器控件中,例如用于移动应用程序的外壳控件或 NavContainer,或放入任何其他容器中。targetControl 参数包含此控件的 ID。
  • targetAggregation :- 目标应用程序参数包含包含视图的目标控件的聚合的名称。例如,一个 NavContainer 有一个名为 Pages 的聚合,而 shell 容器有 Content。
  • subroutes :- subroutes 参数包含一个路由数组,可以包含完整的路由配置。添加到子路由的路由本身可能有子路由。
  • callback :- callback 参数是一个可选函数,在路由匹配后执行。
于 2016-06-01T07:27:14.790 回答