gpt4 book ai didi

sapui5 - 何时使用 jQuery.sap.registerModulePath() 并举例说明?

转载 作者:行者123 更新时间:2023-12-01 19:35:36 25 4
gpt4 key购买 nike

我已尝试阅读上述内容的 SAPUI5 文档,但我无法清楚地理解其用法。另外,sap.ui.localResources()jQuery.sap.registerModulePath() 之间有什么区别以及何时使用什么?

如果有人可以用一个简单的例子来解释,那将会非常有帮助。我们还可以使用jQuery.sap.registerModulePath()来加载mockData吗?

最佳答案

如果您在 bootstrap config 中使用 resourceRoots或在 app descriptor ,您一直在使用jQuery.sap.registerModulePathresourceRoots 中定义的每个键值对始终作为参数传递给该静态方法。

例如,您的index.html 中可能有这样的内容:

<script id="sap-ui-bootstrap" src="..."
data-sap-ui-resourceroots='{"my.app": "./"}'
...
></script>

UI5 然后将命名空间(“my.app”)全局注册为引用,表示“每当在解析其他模块名称时提到该名称时,我应该查找注册路径中的目标模块,在我们的例子中是相对于当前document.location.href“./”

以上代码与直接调用 jQuery.sap.registerModulePath("my.app", "./")[1] 效果相同。

  • 在这里,我们可以传递用户定义的 URL 前缀。例如:"../" 而不是 "./" 如果项目在 one hierarchy level deeper such as mockserver.html 中有另一个 *.html 文件,则需要使用 "./"
  • 如果我们有一个更深层次的模块,例如在 custom/control/somewhere/c3/chart/ 中,我们可以注册另一个命名空间: "my.app.c3chart": "./custom/control/somewhere/c3/chart" 然后
    • 将其用作 XMLView 定义中的快捷方式:
      xmlns:c3="my.app.c3chart" 而不是xmlns:c3="my.app.custom.control.somewhere.c3.chart"
    • 当模块文件更改其层次结构级别时,仅更改注册路径,从而降低维护成本。命名空间“my.app.c3chart”仍然可以在任何地方使用。

[1]:自 1.58 起,该 API 已弃用。手动注册命名空间时,API sap.ui.loader.config应该使用:

sap.ui.loader.config({
paths: {
"my/anotherApp": "https://example.com/somePath/anotherApp"
}
});
<小时/>

What is the difference between sap.ui.localResources() and jQuery.sap.registerModulePath()?

这是当前的 source code什么 sap.ui.localResources实际上是这样的:

sap.ui.localResources = function(sNamespace) {
jQuery.sap.registerModulePath(sNamespace, "./" + sNamespace.replace(/\./g, "/"));
};

就是这样。它立即调用 jQuery.sap.registerModulePath ,并将命名空间中的点(如果有)替换为 "/"

  • 我们无法传递任何用户定义的网址前缀
  • 命名空间与实际文件夹层次结构和名称紧密结合。
  • SAP discourages此 API 的使用(对于非独立应用)。
  • API 引用提到此 API 将变得过时。 is deprecated

关于sapui5 - 何时使用 jQuery.sap.registerModulePath() 并举例说明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46171763/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com