2017-06-20 17 views
-1

Angularアプリでは、jsファイルをインポートしてコンポーネント内の変数を宣言しても、コンポーネント内のサードパーティJavaScript関数にアクセスできません。Angula2コンポーネント内のJavaScript関数にアクセスできない

以下は私のコード

import 'mxgraph-js/dist/mxgraph-js.js'; 

declare var mx: any; 
declare var mxEvent: any; 
declare var mxGraph: any; 
declare var mxRubberband: any; 


EXCEPTION: Uncaught (in promise): Error: Error in :0:0 caused by: mx is not defined 
[email protected]://localhost:8080/f31627203470d3f88f30.3.chunk.js:694:10 
[email protected]/Module1Module/Module1Component/wrapper.ngfactory.js:5:18 
anonymous/[email protected]/Module1Module/Module1Component/host.ngfactory.js:13:32 
AppView</[email protected]://localhost:8080/app.js:12320:21 
DebugAppView</[email protected]://localhost:8080/app.js:12719:25 
ComponentFactory</[email protected]://localhost:8080/app.js:7294:21 
ViewContainerRef_</[email protected]://localhost:8080/app.js:9591:50 
RouterOutlet</[email protected]://localhost:8080/app.js:57517:29 
ActivateRoutes</[email protected]://localhost:8080/app.js:56827:12 
ActivateRoutes</[email protected]://localhost:8080/app.js:5679 

あるしかし、私はロード時にindex.htmlをすべて内部同じJSファイルが正常に動作します。私は多くのシナリオでこの問題に直面しています。あなたがmxgraph-jsパッケージがインストールされていることを、あなたが好きそれをインポートする必要が考える

答えて

0

import * as mx from 'mxgraph-js'; 

// and use it like 
console.log(mx) 
console.log(mx.mxEvent); 

あなたtsconfig.jsonにtrueにnoImplicitAnyセットを持っている場合は、あなたがそこにドン以来mxgraph-jsの定義を宣言する必要がありますmxgraph-jsの入力と思われます。このような

何か:Saravana @

// mxgraph.d.ts 

declare module "mxgraph-js" { 
    var mx: any; 
    export = mx; 
} 
+0

おかげで、それは正常に動作している、しかし、私は、私は複数の変数を持っている場合は、小さな疑問を持っている私は、インポートおよびエクスポート皆を定義が必要なのですか? – Surya

+0

これはあなたのライブラリでどのように宣言されているかによって異なります。 – Saravana

+0

https://www.npmjs.com/package/mxgraphを使用してmxgraph javascriptライブラリを使用してmxgraphエディタを統合しようとしています – Surya

関連する問題