是否有一种方法可以获得定义当前范围的元素?我有一个指令,根据当前范围修改一些东西,但它需要知道该范围的根元素在哪里。
我知道有一种方法可以获得整个应用程序的根元素,但有一种简单的方法来获取它所在的范围吗?
我想到这样做的一种方法是在我的链接函数中做这样的事情:
link: function(scope, element, attrs){
var scopeRootElement = element.parents('.ng-scope').first();
}
答案 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');
...