我的应用程序中有两个FLP磁贴。一个可以访问sap.ui.core.Fragment.load
,但另一个不能。
他们都通过以下方式加载UI5
<script
id="sap-ui-bootstrap"
src="https://sapui5.hana.ondemand.com/resources/sap-ui-core.js"
data-sap-ui-theme="sap_belize_plus"
data-sap-ui-libs="sap.m, sap.ushell, sap.collaboration"
data-sap-ui-preload="async"
data-sap-ui-compatVersion="edge"
data-sap-ui-frameOptions='allow'
data-sap-ui-resourceroots='{
"monitor": "./",
"common": "./../../../common"
}'>
</script>
不工作的人在SAPUI5资源中没有Fragment.js
,但是我可以访问Fragment-dbg.js
我也比较了manifest.json
,没有区别。还有其他线索吗?
答案 0 :(得分:3)
我发现在sap.ui.xmlfragment()
之后,Fragment.load()
存在。
因此,将其添加到sap.ui.define
或.require
,然后它就可以使用。
sap.ui.require([
"sap/ui/core/Fragment"
], function(Fragment){
Fragment.load({
name: "namespace.myFragment",
controller: this
}).then(function(oFragment) {
// ...
}.bind(this));
}.bind(this));
感谢@Boghyon Hoffmann:
sap.ui.*
名称空间内的工厂函数也已重构。现在,UI5在顶部提供了完全异步的API。 当然,出于兼容性原因,仍然可以使用旧的API,但也已弃用。 Modularization of the SAPUI5 Core
新API必须使用模块化方式,即使用sap.ui.require
/ sap.ui.define
。