2017-04-20 39 views
0

私はIDEとしてVS 2015を使用しています。私は、次のことを読んだことがある: Angular 2 typescript invoke javascript functiontypescriptからjavascript関数を呼び出す2

Using a Javascript Function from Typescript

Using a Javascript Function from Typescript

しかし、私はまだ基​​本を得ることはありません。私はtesting.js を持っていると私は私のapp.component.tsでtestJsを使用するにはどうすればよい

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

} 

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

をapp.component.tsと仮定

?現時点ではこれを試してみましたが、失敗しました:

import { Component } from '@angular/core'; 
interface testJs { 
    testing: Function; 
} 
declare var testJs: testJs; 
@Component({ 
    selector: 'my-app', 
    templateUrl: '/mainTemplate.html' 
}) 
export class AppComponent { 
    testJs.testing("adsf"); 
} 

私は以下のことを試しましたが、それでもうまくいきません。 enter image description here

と私はangular.cliを持っていません。それはangular.cliなしで行うことが可能ですか?

+0

のコンストラクタでfuncitonを使用しますが、ここで角度テストガイドを見たことがあります:https://angular.io/docs/ts/latest/testing/ – DeborahK

+0

私はユニットテストのために見ているわけではありません。私はtypescriptからjavascript funcitonを呼び出す方法を探しています – jay

+0

は、角度cliを使用していますか?このスクリプトをangular-cli.jsonファイルに入れる必要がありますか? –

答えて

2
  1. ここで、これはtestJS.jsです。これは外部のlibですか?そうならば、あなたは、角度-CLIそのようにそれを含める必要があります。

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

  2. あなたがタイピングを作成したり、少なくともダミータイプを作成するいずれかの必要があります。

    declare var testJS: any;

  3. することができますそれを使用してください

+0

私はそれが動作しているとは思わない...私はちょうど上の私の質問のスクリーンショットを入れて – jay

3

最後にそれを行う方法が見つかりました。 main.jsファイルをダウンロードし、あなたのhtmlファイル内

  1. は、やる(私は角使用していますこのような場合には)あなたのtypescriptファイルにheadタグ enter image description here

  2. にはJavaScriptファイルへの参照を置きます以下:

a。変数を宣言します。

b。エクスポートされたクラス

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

私はいつも未定義のエラーを取得するリフレッシュ後。あなたは修正を知っていますか? –

+0

関数testJs()を宣言します。上記の文脈で の場合、testJsはファイル名ではありません。関数名です。あなたは正しいことを持っていますか? – jay

+0

"testFunction()"とは何ですか? –

関連する問題