Angular2: Externe js-Datei in Komponente importieren
Werde ich zum importieren dieser d3gauge.js - Datei in einem meiner angular2 Komponente memmon.component.ts
- Datei.
import '../../../../js/d3gauge.js';
export class MemMonComponent {
createMemGauge() {
new drawGauge(this.opt); //drawGauge() is a function inside d3gauge.js
}
}
und in der entsprechenden template-Datei, fügen Sie
<script src="../../../../js/d3gauge.js"></script>
Aber es funktioniert nicht, drawGauge
kann nicht gefunden werden.
So,
- was sind richtige Schritte zum importieren einer externen js-Datei zu angular2?
- da bin ich mit webpack, ist es möglich, es zu tun im webpack? Ich beziehe mich auf diese Frage , die webpack-Lösung gibt es nicht für mich arbeiten, als Ergebnis der
.ensure
können nicht aufgelöst werden.
InformationsquelleAutor der Frage Bing Lu | 2016-05-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Im Idealfall müssen Sie haben
.d.ts
- Datei für Testungen zu lassenLinting
Arbeit.Aber Es scheint, dass
d3gauge
nicht haben, können Sie Bitten die Entwickler zu bieten und hoffen, Sie werden hören.Alternativ können Sie lösen dieses Problem dadurch
Wenn Sie es in mehrere Dateien, können Sie eine
d3gauage.d.ts
Datei mit dem Inhalt unterund verweisen Sie in Ihrem
boot.ts
(bootstrap-Datei) an der Spitze, wie diesesInformationsquelleAutor der Antwort Ankit Singh
Nach verschwenden viel Zeit bei der Suche nach Ihrer Lösung, ich hab eines gefunden. Für Ihre Bequemlichkeit habe ich die komplette code, den Sie ersetzen können Sie Ihre gesamte Datei mit.
Dies ist eine Allgemeine Antwort. Lassen Sie uns sagen, Sie möchten, importieren Sie eine Datei namens testjs.js in Ihrem eckigen 2-Komponente.
Erstellen testjs.js im Ordner "assets":
assets > testjs.js
gehören testjs.js in Ihrem index.html
index.html
In Ihrer app.Komponente.ts oder in einer beliebigen Komponente.ts-Datei, wo Sie wollen, rufen Sie diese js deklarieren Sie eine variable, und rufen Sie die Funktion wie folgt:
app.Komponente.ts
Schließlich in Ihrem app.component.html testen Sie die Funktion
app.component.html
InformationsquelleAutor der Antwort Muhammad Rehan Qadri
Statt einschließlich Ihrer
js
- Datei-Erweiterung inindex.html
können Sie in.angular-cli-json
Datei.Diese sind die Schritte, die ich gefolgt, um dieses zu erhalten zu arbeiten.
js
Datei inassets/js
.angular-cli.json
- fügen Sie den Pfad der Datei unter scripts:[../app/assets/js/test.js]
js
Datei.Erklären, an der Spitze, wo Sie wollen, um die Dateien zu importieren, wie
Danach können Sie den Zugriff auf Ihre Funktionen, wie zum Beispiel
Test.add()
InformationsquelleAutor der Antwort Sitaram
Folgende Ansatz funktioniert in Winkel-5 CLI.
Zur Vereinfachung habe ich ähnliche d3gauge.js demo erstellt und zur Verfügung gestellt von oliverbinns - die können Sie ganz einfach finden Sie auf Github.
Also erstmal, habe ich einfach erstellt einen neuen Ordner mit dem Namen externalJS auf der gleichen Ebene wie die Vermögenswerte Ordner. Kopiere ich dann die 2 folgenden .js-Dateien.
Ich dann sicher, dass Sie erklären, die beide mit Richtlinien in main index.html
Fügte ich einen ähnlichen code
in einem Messgerät.Komponente.ts - Komponente wie folgt:
}
und schließlich, added mich einfach ein div, in den entsprechenden gauge.component.html
et voilà ! 🙂
InformationsquelleAutor der Antwort PeteZaria
Hier ist eine einfache Weise, ich habe es in mein Projekt.
können sagen, Sie müssen verwenden
clipboard.min.js
und für den sake des Beispiels können sagen, dass im inneren
clipboard.min.js
gibt es eine Funktion, genannttest2()
.um test2 () - Funktion, die Sie brauchen:
clipboard.min.js
Ihrer Komponente.hier sind nur die relevanten Teile meines Projektes (siehe die Kommentare):
index.html:
app.Komponente.ts:
InformationsquelleAutor der Antwort jonathana
Können Sie auch versuchen, diese:
und nur
new drawGauge(this.opt);
in deinen ts-code. Diese Lösung funktioniert in einem Projekt mit Winkel-cli embedded in laravel, auf dem ich gerade arbeiten. In meinem Fall habe ich versucht zu importierenpoliglot
Bibliothek (btw: sehr gut für übersetzungen) aus node_modules:Diese Lösung ist gut, weil ich brauchen nicht zu KOPIEREN alle Dateien aus
node_modules
🙂 .InformationsquelleAutor der Antwort Kamil Kiełczewski