2017-01-01 5 views
0

基本テンプレートを持つ単純な角型プロジェクトを設定しました。この基本テンプレートは、必要なライブラリをすべてインポートし、単純なjQuery関数を実行します。Javascript関数は角度テンプレートに影響しません

<html ng-app='myApp'> 
    <body> 
     <div><input type="text"></div> 
     <div ng-view></div> 
     // Imports 
     <script> 
      (function() { 
       $('input').each(function() { 
        $(this).addClass('doSomething'); 
       }); 
      })(); 
     </script> 
    </body> 
</html> 

基本的にこの関数は、DOMのすべての入力要素にクラスを追加します。 ng-viewの外側の最初のinput要素は、この関数の影響を受けます。

しかし、ng-viewテンプレートに入力要素があるとしましょう。これらは、関数によって変わっていません。何故ですか?私のjQuery関数は、AngularテンプレートのDOMにアクセスできないようです。

解決方法はありますか? Angularテンプレートに影響する共通の機能を実行する理想的な方法は何ですか?

ありがとうございました。

+0

など、ディレクティブイベントリスナーを追加するための「正しい」方法は何ですか?あなたは、クラスを超えるセレクタとして要素名を使用して好むなぜ '入力{your_code}' – Maxime

+0

、すべての入力にクラスを追加するには、あなたは、単純なCSSクラスを使用する必要があるようですか? – Maxime

+0

@Maxime: – 1252748

答えて

0

テンプレートは、何らかの形で暗黙的に「含まれていません」。彼らははオンザフライでの角度のコードでを構築し得る(および潜在的にメインページのonloadイベントがトリガされた後に発生するHTTPリクエストのようなasynschronousイベントに基づいて)。したがって、あなたは何らかの角度で協力しない限り、DOMが角度で構築されていることを保証することはできません。

「正しい」方法は、(あなたが上そうであるようにjQueryを使用するのではなく)クラスを追加します「入力」タグの角度のディレクティブを書くために、おそらくこれをアプローチします。あなたが(または1つが既に存在する場合、検索)していないのはなぜと確かにそれは

関連する問題