2016-04-14 8 views
0

So versuche ich eine externe .js-Datei in meinem SAPUI5-Controller.Verwenden von externen js-Bibliotheken in sapui5

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

Der Callback, der aufgerufen werden soll, sobald das Skript geladen ist, wird jedoch nie aufgerufen. Die Fehlermeldung, die es mir gibt ist:

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

Was ist eine andere Möglichkeit, die ich tun könnte? Ich habe jQuery.sap.registerModulePath() und jQuery.sap.registerResourcePath() untersucht, konnte aber weder ein gutes Beispiel für die Verwendung dieser noch eine Erklärung des Unterschieds zwischen den beiden online finden.

Vielen Dank!

+0

Welche Bibliothek versuchen, Sie sind ... vielleicht, dass die Bibliothek verweist auf eine andere Bibliothek oder dependecy. – Hackerman

Antwort

-1

Sie können jQuery.sap.registerResourcePath ('lib', URL) und dann jquery.SAP.require ('lib.file') verwenden. Sie können beides nacheinander tun oder sich bei der init und später anfordern. Ist egal. Ich habe kein Beispiel zur Hand, da ich telefoniere, aber es funktioniert. Was Sie beachten sollten, ist, dass in diesem Beispiel etwas wie URL/file.js geladen wird, sodass Sie entsprechend anpassen müssen. Der Name, den du der lib gibst, spielt keine Rolle. Sie können auch ein Skript-Tag in die aktuelle Seite einfügen, aber das Require lädt die externe Lib synchron, während Sie beim Eingeben eines Skript-Tags warten müssen, bis es mit einem Callback geladen wird.

PS: die Aktivierung auf diesen Methoden ist nicht richtig

-1

Verstanden! Für die Zukunft, arbeitet er die Dateien aus dem Index html wie so zu laden:

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

Das Hauptproblem war, dass ich externe Abhängigkeiten schließen versuchte, die auch jQuery enthalten. Also musste ich das aus der Datei entfernen und jetzt funktioniert es.

4

können Sie versuchen, jQuery.sap.includeScript(vUrl, sId?, fnLoadCallback?, fnErrorCallback?)

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

in fiori Launchpad-basierte Anwendung verwenden wir component.js als root, so haben wir keine index.html-Skripte sind (wenn Sie XML-Ansicht Instand verwenden der HTML-Ansicht).

versuchen

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

Nicht in Portal-Service arbeiten, Rückfall zur Verfügung gestellt: UsingjQuery.sap.includeScript().then() in HCP Firori Launchpad

+0

Benötigen Sie die .then() - Funktion? Wenn ich die Definition des includeScript() - Rechtes lese, würde ich diese Funktion in fnLoadCallback einfügen und bei Bedarf einen fnErrorCallback definieren, oder? – nxthor