webentwicklung-frage-antwort-db.com.de

Importieren einer JavaScript-Datei in angle2

Ich habe Probleme, herauszufinden, wie ich eine Javascript-Datei in mein Projekte von angle2 importieren kann. Es ist eine Datei, die kein Modul ist, die sich von npm unterscheidet, und die einzigen Anweisungen, die ich finden konnte, ist die Verwendung von npm, was hier keine Option ist.

Ich verwende eckiges cli und in meiner eckigen-cli.json-Datei habe ich:

{
"apps": [
  "styles": [..],
  "scripts": ["../pathtomyjs/file.js"] 
]}

Ich habe ng Build und Ng Serv ausgeführt und wenn ich meine App öffne und die Webkonsole anschaue und auf die Funktion in meiner js-Datei verweise, kann ich dies erfolgreich tun.

Beispiel in der Konsole, die ich eingebe:

var test = MyObject; 

und ich bekomme test = {};

Wenn ich es aber versuche 

let test = MyObject;

in meiner Komponente .ts-Datei bekomme ich:

home.component.ts (10,11): Cannot find name 'MyObject'.)

Nicht sicher, wie Sie dies in Angular2 tun.

Vielen Dank!

11
Kevin Sar

Tun:

declare var MyObject: any;

let test = MyObject;

Oder:

let test = (<any> MyObject);

Für jQuery:

declare var jQuery: any;

jQuery.ajax({ ... });
8
Dan

Ist es eine Drittanbieter-Bibliothek? Sie müssen dem TypeScript-Compiler mitteilen, wo sich die Typdefinitionsdateien befinden. Normalerweise wird im Ordner node_modules/@types gesucht. Wenn Sie beispielsweise jQuery verwenden möchten, installieren Sie die erforderlichen Typdefinitionsdateien, indem Sie Folgendes ausführen: 

npm install @types/jquery
2
pixelbits

Ich lege meine js Dateien in app/assets/scripts und lade sie in index.html<script src="assets/scripts/foobar.js"></script>. Dies ist für ein ionic2/angular2-Projekt. 

Im Modul müssen Sie Ihre Funktionen im globalen Umfang der Moduldatei definieren

declare var myFancyFunction;

0
El Dude

Ich habe einen tiefen Tauchgang mit diesem hier gemacht:

Dies ist eine großartige Frage und ich bin froh, dass Sie fragen, denn ich wünschte, ich hätte das, was ich schreiben wollte, als ich zum ersten Mal auf dieses kleine Problem gestoßen bin. Dies ist ein TypeScript/Javascript- und Webpack-Problem, bevor es sich um ein eckiges Problem handelt. Ich plane auf jeden Fall ein Schreiben auf mein Blog so bald wie möglich.

Ihr Szenario:

Sie laufen 

npm install mathjs
  1. Jetzt versuchen Sie, math.js von einer Komponente zu verwenden:
  2. Suchen Sie nach der Datei math.js dist js (node_modules/mathjs/dist/math.js) und verweisen Sie auf diese Weise 

    import {mathjs} from "../../node_modules/mathjs/dist/math";

  3. Sie erhalten jedoch die Fehlermeldung "set --allowJS". Sie machen das so:

    Set --allowJS in config (tsconfig.json) { "compilerOptions": { "allowJs": true, ...

  4. Jetzt bekommst du:

FEHLER in ../node_modules/mathjs/dist/math.js (12209,13): Nicht erreichbar Code erkannt.

  1. Wenn Sie sich die Quelle von math.js ansehen, sehen Sie, dass es sich um ein Old School-Modul handelt, aber es gibt keine Root-Wrapper-Funktion (eine Funktion, um sie alle zu bringen und in der Dunkelheit zu binden ..) (dazu später mehr).

Lösung: Installieren Sie eine Typisierungsdatei für die Ziel-Bibliothek (@ types/mathjs).

Weiterlesen...

0