加载 UI5 片段

Loading the UI5 fragments

在官方 UI5 文档中,有一个代码片段如何加载 sap.ui.core.Fragment:

sap.ui.require(["sap/ui/core/Fragment"], async function(Fragment){
    this.myFragment = await Fragment.load({
        name: "my.useful.VerySimpleUiPart"
    });
});

同时,我可以使用 sap.ui.core.mvc.ControllerloadFragment 加载 sap.ui.core.Fragment:

this.myFragment = await this.loadFragment({
    name: "my.useful.VerySimpleUiPart"
});

this 是基于 sap.ui.core.mvc.Controller.

BaseController 的实例

据我了解,loadFragment 在后台使用 sap.ui.core.Fragment.load

Loads a Fragment by sap.ui.core.Fragment.load.

如果是这样,我们为什么还需要 Controller.loadFragment
是否有官方 SAP 建议使用哪种方法?

片段加载随着新版本的发布而发展:

之前:1.58:

sap.ui.xmlfragment Deprecated as of version 1.58. use sap.ui.core.Fragment.load instead

从: 1.58:

sap.ui.core.Fragment.load

从: 1.93:

sap.ui.core.mvc.Controller.loadFragment

因此推荐的方法取决于您的 UI5 版本。

最新版本 (1.95) 的推荐在 SAPUI5 SDK 的 Instantiation of Fragments 部分。