我有一个像这样的元素:
<div class="someclasses" ng-class="{'new-class': function()}">
如果使用ng-click
,我们可以通过传递$event
来获取元素。像这样:
<div class="someClasses" ng-click="function($event)">
然后像这样得到目标元素:
$scope.function = function($event) {
console.log($event.currentTarget); // Logs the current target element
}
但是,ng-class
不支持将事件对象$event
作为参数传递。
所以我的问题是,我怎样才能获得分配了ng-class
的目标元素?
我无法使用angular.element('classname')
选择器,因为函数内部的表达式会在分配了ng-class
的元素上查找动态添加的类名。
答案 0 :(得分:1)
用最简单的术语来说,这是不可能的。您需要编写一个自定义指令来执行此操作,如this thread中所述。
或者,如果您将div设置在ng-repeat
左右,则可以手动将一些标识符传递给您的函数,这有助于它找到正确的信息。
<div ng-repeat="item in data track by $index">
<div class="someclasses" ng-class="{'new-class': classFunc($index)}">
...
</div>
这样,classFunc
就可以访问该项目的索引,并且可以相应地在data
中找到该信息。