2017-11-18 21 views
0

コンポーネントに外部jsファイルをインポートしようとしています。角2:コンポーネントから外部jsファイル変数にアクセス可能

external.js

var x=9; 

component.ts

import '../../assets/api/external.js'; 
declare let x: any; 
.... 
console.log(x); 

と私が取得:

ERROR ReferenceError: x is not defined 

にはどうすればいいのコンポーネントからのxにアクセスすることができますか? jsファイルを見つけることができないと不平を言うことはありません。

+1

同じでshouleあなたはそれを作るためにスクリプトを追加しますパブリック "スクリプト":[ "..あなたのスクリプト" ]として、それをjsonに追加する必要があります。 – gusaindpk

+1

.jsファイルで 'export x = 9'を実行してからインポートしてみてください – DrNio

答えて

1

angle-cli.jsonにスクリプトをグローバルスクリプトとして追加してください。

"scripts": [ 
"../external.js", 
"../node_modules/.....min.js", 
"../node_modules/jspdf-autotable/dist/....js" 
], 

これが役立つかどうかをお知らせください。 参考リンクは次のとおりです。jsjsあなたのコンポーネントに関数やクラスをエクスポートしませんでした。https://github.com/angular/angular-cli/wiki/stories-global-scripts

1

インポート用 MDNインタフェースはimport 'module_name'を購読:

は何もインポートせず、唯一の副作用のために全体のモジュールをインポートします。モジュールのグローバルコードが実行されますが、実際には値はインポートされません。

したがって、クラスまたは関数を追加してからエクスポートしてください。

0

Angularアプリケーションのanthoerスクリプトからvaribaleを呼び出すことができます。

手順1. assests/javascriptフォルダにdemo.jsファイルを作成します。

export function test1(){ 
    console.log('Calling test 1 function'); 
} 

ステップ2. assests/javascriptフォルダにdemo.d.tsファイルを作成します。

export declare function test1(); 

ステップ3.

//User defined file path 
import { test1 } from '../assets/javascript/demo'; 
@Component({ 
    selector: 'app-root', 
    templateUrl: './app.component.html', 
    styleUrls: ['./app.component.css'] 
}) 
export class AppComponent { 
    constructor() { 
    console.log(test1()); 
    } 
} 

注コンポーネントで使用してください:JSと.d.tsファイル名は、角のCLI JSONで

関連する問題