2017-04-20 5 views
0

aufrufen Ich verwende VS 2015 als meine IDE. Ich habe folgende lesen: Angular 2 typescript invoke javascript functionJavascript-Funktion von Typoskript Angular 2

und

Using a Javascript Function from Typescript

und

Using a Javascript Function from Typescript

aber ich den Grund noch nicht bekommen.

davon aus, dass ich habe testing.js und app.component.ts

var testJs = function() { 
    this.asd = 123; 

} 

testJs.prototype.testing = function (param) { 
    console.log(param); 
} 

Wie verwende ich testJs in meinem app.component.ts? Im Moment versuche ich das aber nicht:

Ich habe das folgende versucht und es funktioniert immer noch nicht so gut. enter image description here

und ich habe angular.cli nicht. Ist es möglich ohne angular.cli zu arbeiten?

+0

Haben Sie die Winkeltestführung hier gesehen: https://angular.io/docs/ts/latest/testing/ – DeborahK

+0

ich nicht für Unit-Test suchen. Ich bin auf der Suche nach einer JavaScript-Funktion aus Typoskript – jay

+0

sind Sie mit angular-CLI? Sie müssen dieses Skript in angular-cli.json-Datei setzen? –

Antwort

2
  1. wo erhalten Sie diese testJS.js. Ist das externe Lib? Wenn ja, müssen Sie es in Winkel-cli, so schließen:

    "scripts": [ "../node_modules/.../testJS.js" ],

  2. Sie müssen entweder Typisierungen erstellen oder zumindest Dummy-Typ machen:

    declare var testJS: any;

  3. können Sie Verwenden Sie es nach

+0

ich glaube nicht, dass es funktioniert ...Ich habe gerade einen Screenshot in meine Frage eingefügt – jay

3

Endlich einen Weg gefunden, es zu tun.

  1. in Ihrer HTML-Datei, die die main.js Datei herunterladen, setzte Verweis auf die JavaScript-Datei im head-Tag enter image description here

  2. in Ihrer Typoskript-Datei (in diesem Fall i Winkel bin mit) zu tun die folgenden:

a. Deklarieren Sie die Variable:

b. Verwenden Sie die funciton im Konstruktor der exportierten Klasse

import { Component } from '@angular/core'; 
declare function testJs(): any; 
@Component({ 
    selector: 'my-app', 
    templateUrl: '/mainTemplate.html' 
}) 

export class AppComponent { 
    user: string; 
    constructor() { 
     testJs.prototype.testFunction(); 
     this.user = "asdf"; 
     var x = 90; 
    } 
} 
+0

Nach der Aktualisierung bekomme ich immer den undefinierten Fehler. Kennst du irgendeine Reparatur? –

+0

Funktion deklarieren testJs(): any; im obigen Kontext ist der TestJs nicht der Dateiname. es ist der Funktionsname. hast du das richtig? – jay

+0

Was ist dann die "testFunction()"? –

Verwandte Themen