2017-04-20 12 views
0

私はAngularJS 1.6アプリケーションのコンポーネントで定義された関数を呼び出す必要がありますが、これは角度アプリの外で単純なJavaScriptコードで行う必要があります。これどうやってするの?簡単な外部のjavascriptコードからAngularJS 1.6コンポーネント関数へのアクセス

+0

を見ますあなたが何かを素早く汚れてテストしたいのであれば、おそらくそれを試すことができます。 – Gaurav

+0

ありがとう@Gaurav、これを行う私の主なポイントはbeacuseです。私はこのコンポーネントを外部のブートストラップモーダルに埋め込みたいので、このモーダルを閉じて他のアクションを行うためにコンポーネントのボタンを押す必要があります。あなたが私にこれをより良いやり方でやる方法に関するいくつかのヒントを与えることができれば、私はこれを感謝します。 – gof

+1

だから、なぜブートストラップモーダルを覆うか、角張ったブートストラップをうまく使う指示を作らないでください。これが役立つかもしれないhttps://angular-ui.github.io/bootstrap/#modal – Gaurav

答えて

-1

標準イベントブロードキャストを使用すると役立ちます。あなたのコンポーネントの内部

:他

document.addEventListener('trigger-my-method',() => myMethod());

どこか:

let myEvt = new Event('trigger-my-method'); document.dispatchEvent(myEvt)

編集: 私はこのソリューションをテストしていないよ、と私は角度を深くないんだけど、それは動作するはずです

+0

答えてくれてありがとう、私はあなたが私に言う方法を理解していない。次のコードの例を教えてください。これは私のコンポーネントです: – gof

+0

@gofこれのようなものです:https://codepen.io/bajzarpa/pen/zwqoOQ –

+0

ありがとう、@ArpadBajzath、私はそれを試してみます。 – gof

0

あなたが何かを迅速かつ汚れをテストしたい場合は、 nctionを用いて開発者コンソールからアクセスすることができる:$0right click -> Inspectを使用して、またはデベロッパーコンソールの要素ウィンドウの要素をクリックしてコンポーネントを選択することによって設定される

scope = angular.element($0).isolateScope(); 
scope.$ctrl.myFunction(); 

。詳細については

、私はつもりはない尋ねるなぜあなたはこれを行うたいだろうと@ArpadBajzathが提供する答えは、それが動作するように思えるが、最終的には、あなたやメンテナをかむ本当に悪い習慣です。AngularJS angular.element API Reference - jQuery/jqLite Extras

関連する問題