在sapui5中使用外部js库

时间:2016-04-14 11:43:07

标签: javascript jquery sapui5

所以我试图在我的SAPUI5控制器中包含一个外部.js文件。

For Each

但是,加载脚本后应该调用的回调永远不会被调用。它给我的错误信息是:

  

“externalLibrary.min.js:16 Uncaught TypeError:无法读取属性   “构造函数”未定义“

我能做到这一点的另一种方式是什么?我正在研究jQuery.sap.registerModulePath()和jQuery.sap.registerResourcePath()但是找不到这些使用的好例子,也没有解释两者在线的区别。

非常感谢!

3 个答案:

答案 0 :(得分:4)

您可以尝试jQuery.sap.includeScript(vUrl, sId?, fnLoadCallback?, fnErrorCallback?)

https://sapui5.hana.ondemand.com/docs/api/symbols/jQuery.sap.html#.includeScript

在基于fiori launchpad的应用程序中,我们使用component.js作为root,因此我们没有index.html来包含脚本(如果您使用XML视图的HTML视图)。

jQuery.sap.includeScript({
    url: "https://maps.googleapis.com...",
    id: "IncludeGoogleMapsScript"
}).then(function() { ... })

不在门户服务中工作,提供后备: UsingjQuery.sap.includeScript().then() in HCP Firori Launchpad

答案 1 :(得分:-1)

您可以使用jQuery.sap.registerResourcePath(' lib',URL),然后使用jquery.SAP.require(' lib.file')。你可以一个接一个地做,或者在init中注册,然后再要求。没关系。当我在电话上时,我手边没有示例,但它有效。您需要记住的是,此示例将加载类似URL / file.js的内容,因此您需要相应地进行调整。你给lib的名字无关紧要。 您还可以将脚本标记注入当前页面,但是,require会同步加载外部库,而如果您注入脚本标记,则需要等到它加载回调。

PS:这些方法的大写不正确

答案 2 :(得分:-1)

知道了!为了将来参考,它可以加载索引html中的文件,如下所示:

 <script src="library.js"></script>

主要问题是我试图包含也包含jQuery的外部依赖项。所以,我不得不从文件中删除它,现在它正在工作。