作为 FLP 中启用“异步模块加载”准备工作的一部分,其先决条件之一是确保不会由于使用响应标头
eval
及其响应头提供 HTML 文档而触发 Content-Security-Policy
调用。指令 script-src
省略 unsafe-eval
。
UI5 中是否有一个功能可以记录运行时由错误寻址模块触发的所有
eval
调用?
sap-ui-xx-debugModuleLoading=true
启动应用程序,并确保没有不必要地启用调试模式。sap.ui.define([
"sap/ui/core/mvc/Controller",
"sap/ui/comp/library",
], (Controller, sapUiCompLib) => {
// ...
const ValueHelpRangeOperation = sapUiCompLib.valuehelpdialog.ValueHelpRangeOperation; // enum from module "sap/ui/comp/library"
const ValueHelpDialog = sapUiCompLib.valuehelpdialog.ValueHelpDialog; // control from module "sap/ui/comp/valuehelpdialog/ValueHelpDialog"
return Controller.extend("my.controller.MyController", {
onSomething: function () {
const vhDialog = new ValueHelpDialog(/*...*/);
sap.ushell.Container/*...*/;
// ...
},
// ...
});
});
将缺少的依赖项声明为
"sap/ui/comp/valuehelpdialog/ValueHelpDialog"
。 : ...
)。
sap.ui.define([
"sap/ui/core/mvc/Controller",
"sap/ui/comp/library",
"sap/ui/comp/valuehelpdialog/ValueHelpDialog" // <-- Declare the module dependency
], (Controller, sapUiCompLib, ValueHelpDialog) => {
// ...
const ValueHelpRangeOperation = sapUiCompLib.valuehelpdialog.ValueHelpRangeOperation; // enum from module "sap/ui/comp/library"
// const ValueHelpDialog = sapUiCompLib.valuehelpdialog.ValueHelpDialog; <-- Remove
return Controller.extend("my.controller.MyController", {
onSomething: function () {
const vhDialog = new ValueHelpDialog(/*...*/);
sap.ui.require([
"sap/ushell/Container"
], Container => Container/*...*/);
// ...
},
// ...
});
});
声明为依赖的模块名称可以在UI5 API参考中看到:
其他指南可以在 UI5 文档主题开发人员最佳实践中找到。