加载 UI5 片段

Mik*_* B. 0 sapui5

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

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

同时,我可以sap.ui.core.Fragment使用 a loadFragmentof加载sap.ui.core.mvc.Controller

this.myFragment = await this.loadFragment({
    name: "my.useful.VerySimpleUiPart"
});
Run Code Online (Sandbox Code Playgroud)

thisBaseController是一个基于的实例sap.ui.core.mvc.Controller

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

通过 加载片段sap.ui.core.Fragment.load

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

Gre*_*ski 6

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

之前:1.58:

sap.ui.xmlfragment Deprecated as of version 1.58. use sap.ui.core.Fragment.load instead
Run Code Online (Sandbox Code Playgroud)

自:1.58:

sap.ui.core.Fragment.load
Run Code Online (Sandbox Code Playgroud)

自:1.93:

sap.ui.core.mvc.Controller.loadFragment
Run Code Online (Sandbox Code Playgroud)

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

最新版本 (1.95) 的建议位于SAPUI5 SDK 的片段实例化部分。