0

現在のスコープが定義されている要素を角度で取得する方法はありますか? 現在のスコープに基づいていくつかのものを変更するディレクティブがありますが、そのスコープのルート要素がどこにあるかを知る必要があります。

アプリ全体のルート要素を取得する方法があることは知っていますが、現在のスコープだけを取得する簡単な方法はありますか?

これを行うことを考えた1つの方法は、リンク関数で次のようなことを行うことです:

link: function(scope, element, attrs){
  var scopeRootElement = element.parents('.ng-scope').first();
}
4

1 に答える 1

0

過去に$elementサービスがあったと思います。ここを参照してください。ただし、この種の動作は関心の分離に実際に違反しているため、もう存在しないと思います。コントローラー要素にクラス、属性などを配置し、ディレクティブ内の親を介して(jqueryを使用して)探す必要があると思います。

したがって、メソッドを使用できるように jQuery があると仮定するとparents、要素を ng-controller red で作成したい場合、リンク関数は次のようになります。この種類は実装に依存するため、角度表記に頼るのではなく、独自のクラスを追加することを検討することもできます。

...
link: function (scope, element, attrs) {  
  element.parents('[ng-controller]:eq(0)').css('background-color','red');
  // or element.parents('.mycustomclass').css('background-color', 'red');
 ...
于 2013-10-14T21:16:49.803 に答える