2016-04-14 63 views
0

所以我試圖在我的SAPUI5控制器中包含一個外部.js文件。在sapui5中使用外部js庫

jQuery.sap.includeScript("externalLibrary.min.js", 
    function() { 
     //initalizing objects from library 
    }); 

但是,腳本加載後應該調用的回調函數永遠不會被調用。它給我的錯誤信息是:

"externalLibrary.min.js:16 Uncaught TypeError: Cannot read property 'Constructor' of undefined"

什麼是另一種方式,我可以做到這一點?我正在研究jQuery.sap.registerModulePath()和jQuery.sap.registerResourcePath(),但找不到使用這些的好例子,也不能解釋兩者在線的區別。

非常感謝!

+0

哪些庫是你想包括...也許那庫引用另一個庫或dependecy。 – Hackerman

回答

-1

您可以使用jQuery.sap.registerResourcePath('lib',URL),然後使用jquery.SAP.require('lib.file')。您可以一個接一個地執行這兩個操作,或者在init中註冊並稍後需要。沒關係。我手邊沒有一個例子,因爲我在手機上,但它的工作原理。你需要記住的是這個例子會加載類似URL/file.js的東西,所以你需要做相應的調整。你給lib的名字並不重要。 您也可以在當前頁面中注入腳本標記,但是,require會同步加載外部庫,而如果注入腳本標記,則需要等待,直到加載回調。

PS:這些方法的大小寫不正確

-1

知道了!對於未來的參考,它的工作原理,從文件索引HTML載入像這樣:

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

主要的問題是,我是想包括也包含jQuery的外部依賴。所以,我不得不從文件中刪除它,現在它正在工作。

4

您可以嘗試jQuery.sap.includeScript(vUrl, sId?, fnLoadCallback?, fnErrorCallback?)

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

在菲奧裏啓動板基礎的應用程序,我們使用component.js爲根,所以我們沒有的index.html包括腳本(如果你使用XML視圖instand的HTML視圖)。

嘗試

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

在門戶服務不工作,提供後備: UsingjQuery.sap.includeScript().then() in HCP Firori Launchpad

+0

是否需要.then()函數?如果我讀了includeScript()權利的重新定義,那麼我會將該函數放入fnLoadCallback中,並根據需要定義fnErrorCallback,對吧? – nxthor