【问题标题】:SAPUI5 - Header and Footer for all applicationsSAPUI5 - 所有应用程序的页眉和页脚
【发布时间】:2018-12-11 16:50:33
【问题描述】:

我是 SAPUI5 的新手,有一个问题:

是否可以拥有例如带有自定义页眉和页脚的基础应用程序,并且仅将内容更改为另一个应用程序的视图?

所以基本上我有 3 个应用程序和一个基本应用程序。 在基本应用程序中,只有页眉和页脚。我想将页面内容更改为三个应用程序之一的第一个视图(例如基于参数,传入 URL)。 在 URL 中传递另一个参数,内容变为第二个应用程序的视图。

在 dynpros 中可以使用子屏幕,因此插入了一个新的“应用程序”作为子屏幕。

希望你能理解我的问题。

【问题讨论】:

  • 听起来您想要一个带路由的单页应用程序? SAPUI5自带路由,方便内容的变化。

标签: url header sapui5 base


【解决方案1】:

你所描述的,听起来像 UI5 中的页面导航概念,使用路由器(正如@Bernard 所说)。更多信息here

您可以找到一个更具体的示例here,它可以满足您的描述。您可以使用右上角的图标重用此示例应用程序的代码。

不同的场景是不同应用程序之间的导航。在 UI5/Fiori 中,应用程序是具有自己 Component.js 的整个包。因此,从一个应用程序导航到另一个应用程序意味着加载一个新的 Component.js,从那里开始执行,然后重新渲染所有应用程序控件,重置模型等等。但是,如果您真的想改变整个上下文,这不应该吓到您。如果您正确配置应用程序,则在应用程序之间切换时无需再次下载相同的库,因为它们将被缓存。所以浏览器只需要重新渲染(页眉和页脚的毫秒数)。

【讨论】:

  • 我认为我们谈论的是同一个概念,但名称不同。当您在 NW 系统中部署 UI5 应用程序时,它会保存在您的 BSP 存储库中。您部署的包有一个 Component.js 文件,该特定应用程序的所有 JS 执行都在该文件中开始。现在有两种情况:或者您使用 Fiori Launchpad 作为登录页面(Fiori Launchpad 是 HTML 文档)并从那里加载您想要的应用程序;或者您以独立方式执行您的应用程序(每个应用程序都有自己的 index.html 文件)。
  • 所以,我推荐你使用 Fiori Launchpad。它将加载一次主库,然后渲染部署在 BSP 存储库中的不同 UI5 应用程序,开始执行 Component.js 文件中的每个应用程序。避免加载新的 HTML 文档,并重复使用 Fiori Launchpad 页眉和页脚。
  • 另一个第三个选项。复杂得多。是构建自己的“Fiori Launchpad 风格”应用程序。这只是一个带有您想要的控件的外壳,您可以在任何地方使用 sap.ui.core.ComponentContainer 控件,在“Fiori Launchpad Style”应用程序中的任何位置加载应用程序的不同 Component.js 文件。
  • 官方 Fiori Launchpad 和您自己的“Fiori Launchpad 风格”应用程序都可以在应用程序之间切换,只需更改 URL 中的参数(更具体地说,更改哈希路由 host:port/... ./FioriLaunchpad.html/#LeaveRequest-approve)
猜你喜欢
  • 2011-10-07
  • 2016-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-13
  • 2016-01-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多