jQuery.sap.includeScript().then() 在 SCP SAPUI5 应用程序中不工作
jQuery.sap.includeScript().then() not working in SCP SAPUI5 app
我正在尝试在 sapui5 中包含 googlemaps
jQuery.sap.includeScript({
url: "https://maps.googleapis.com/maps/api/js?key=XXXX",
promisify: true
}).then(function() { ... } )
当我在 SAP Web-IDE 试用版中 运行 时,这个 Promise 工作正常,但是当我将它部署到 hana 云平台时,它不起作用:
InterceptService.js:1 Uncaught (in promise) TypeError: u.indexOf is not a function(…)
sap.ushell.cloudServices.interceptor.InterceptService._invokeFilters @ InterceptService.js:1
jQuery.sap.includeScript @ InterceptService.js:1
onAfterRendering @ Worklist.controller.js:37
InterceptService.js
产生此错误的代码片段是
{if(u.indexOf('/sap/fiori/../../')>0){u=u.replace('/sap/fiori/../../','/');}
我确实使用 HCP 门户服务 来制作 HCP Fiori Launchpad 平台。
如何解决这个问题?我做错了什么?
非常感谢!
看起来 InterceptService 还不支持 jQuery.sap.includeScript 的最新签名(其中参数在配置对象中提供,而不是作为单独的参数提供)。
中期,需要增强/修复 InterceptService。短期内,您可能会退回到旧签名 jQuery.sap.includeScript(url, id, onload, onerror)。遗憾的是,无法使用旧签名获得 Promise。
确实是 InterceptorService
的问题,不支持 includeScript
以对象作为第一个参数的语法。
我已将解决方案的代码转发给 HCP 门户服务 的实施团队,它将在下一个版本中修复。
到目前为止,您可以通过以下解决方法实现相同的功能:
new Promise(function(fnResolve, fnReject) {
jQuery.sap.includeScript(
"https://maps.googleapis.com/maps/api/js?key=XXXX",
"mapsScriptId", fnResolve, fnReject
);
}).then(function() { ... } )
看看UI5是如何实现的: https://github.com/SAP/openui5/blob/rel-1.38/src/sap.ui.core/src/jquery.sap.global.js#L4387-L4389
我正在尝试在 sapui5 中包含 googlemaps
jQuery.sap.includeScript({
url: "https://maps.googleapis.com/maps/api/js?key=XXXX",
promisify: true
}).then(function() { ... } )
当我在 SAP Web-IDE 试用版中 运行 时,这个 Promise 工作正常,但是当我将它部署到 hana 云平台时,它不起作用:
InterceptService.js:1 Uncaught (in promise) TypeError: u.indexOf is not a function(…) sap.ushell.cloudServices.interceptor.InterceptService._invokeFilters @ InterceptService.js:1
jQuery.sap.includeScript @ InterceptService.js:1
onAfterRendering @ Worklist.controller.js:37
InterceptService.js
产生此错误的代码片段是
{if(u.indexOf('/sap/fiori/../../')>0){u=u.replace('/sap/fiori/../../','/');}
我确实使用 HCP 门户服务 来制作 HCP Fiori Launchpad 平台。
如何解决这个问题?我做错了什么?
非常感谢!
看起来 InterceptService 还不支持 jQuery.sap.includeScript 的最新签名(其中参数在配置对象中提供,而不是作为单独的参数提供)。
中期,需要增强/修复 InterceptService。短期内,您可能会退回到旧签名 jQuery.sap.includeScript(url, id, onload, onerror)。遗憾的是,无法使用旧签名获得 Promise。
确实是 InterceptorService
的问题,不支持 includeScript
以对象作为第一个参数的语法。
我已将解决方案的代码转发给 HCP 门户服务 的实施团队,它将在下一个版本中修复。
到目前为止,您可以通过以下解决方法实现相同的功能:
new Promise(function(fnResolve, fnReject) {
jQuery.sap.includeScript(
"https://maps.googleapis.com/maps/api/js?key=XXXX",
"mapsScriptId", fnResolve, fnReject
);
}).then(function() { ... } )
看看UI5是如何实现的: https://github.com/SAP/openui5/blob/rel-1.38/src/sap.ui.core/src/jquery.sap.global.js#L4387-L4389