AngularJS:获取当前范围的根元素

时间:2013-10-14 20:48:01

标签: angularjs angularjs-directive

是否有一种方法可以获得定义当前范围的元素?我有一个指令,根据当前范围修改一些东西,但它需要知道该范围的根元素在哪里。

我知道有一种方法可以获得整个应用程序的根元素,但有一种简单的方法来获取它所在的范围吗?

我想到这样做的一种方法是在我的链接函数中做这样的事情:

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

1 个答案:

答案 0 :(得分:0)

我相信过去有$element服务,请参阅here。但是,我不相信它存在,因为这种行为确实违反了关注点的分离。我认为你应该在控制器元素上放置一个类,属性等,然后在你的指令中使用parent查找它(使用jquery)。

所以假设你有jQuery所以你可以使用parents方法,如果你想用ng-controller做红色的元素,你的链接函数可能看起来像这样。这种情况取决于您的实现,您可以考虑添加自己的类,而不是依赖于某种角度表示法:

...
link: function (scope, element, attrs) {  
  element.parents('[ng-controller]:eq(0)').css('background-color','red');
  // or element.parents('.mycustomclass').css('background-color', 'red');
 ...