gpt4 book ai didi

javascript - 如何使用 jquery 请求 requirejs 模块?

转载 作者:行者123 更新时间:2023-11-28 15:11:22 24 4
gpt4 key购买 nike

假设我有这个 ResourceBundleContext.js 文件(requirejs 模块):

sap.ui.define([
"sap/ui/model/resource/ResourceModel"
], function (ResourceModel)
{
'use strict';
var resourceBundleContext = function ()
{
var i18nModel = new ResourceModel({
bundleName: "sap/rules/ui/src/sap/rules/ui/lib/parser/i18n.messages_descriptions"
});
return {
getString: function (messageKey, paramsArray)
{
var oBundle = i18nModel.getResourceBundle();
var sMsg = oBundle.getText(messageKey, paramsArray);
jQuery.sap.log.debug("code: " + messageKey + ", params: " + paramsArray + "\nMessage: " + sMsg);
return sMsg;
}
};
};
return new resourceBundleContext;
});

在路径中:

sap.hrf.ui.uilib.js.parser.infrastructure.locale.lib.resourceBundleContext

我想使用 jquery 来要求上面的模块,这会很好:

jQuery.sap.require("sap.hrf.ui.uilib.js.parser.infrastructure.locale.lib.resourceBundleContext");

我如何使用 jQuery 请求 requirejs 模块?

谢谢!

最佳答案

那是因为您正在混合“旧”同步 requirejs 和新的异步 AMD 模块。您有两种可能的解决方案:

  1. 在模块定义中,您必须给出 sap.ui.define() true 作为最后一个参数,将模块导出到全局命名空间,以便您可以在 jquery.sap.require() 之后访问它。
sap.ui.define([
"sap/ui/model/resource/ResourceModel"
], function (ResourceModel)
{
'use strict';
var resourceBundleContext = function ()
{
var i18nModel = new ResourceModel({
bundleName: "sap/rules/ui/src/sap/rules/ui/lib/parser/i18n.messages_descriptions"
});
return {
getString: function (messageKey, paramsArray)
{
var oBundle = i18nModel.getResourceBundle();
var sMsg = oBundle.getText(messageKey, paramsArray);
jQuery.sap.log.debug("code: " + messageKey + ", params: " + paramsArray + "\nMessage: " + sMsg);
return sMsg;
}
};
};
return new resourceBundleContext;
}, true /* export to global namespace */); //<-- there's the true
  • 您必须使用sap.ui.require()以 AMD 方式加载您的 AMD 模块:
  • sap.ui.require("sap/hrf/ui/uilib/js/parser/infrastructure/locale/lib/resourceBundleContext",
    function(resourceBundleContext){
    // called asynchronously when the module has loaded.
    // resourceBundleContext is your module
    });

    关于javascript - 如何使用 jquery 请求 requirejs 模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36327759/

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