获取元素ng-class AngularJS

时间:2017-11-29 10:42:04

标签: javascript angularjs

我有一个像这样的元素:

<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的元素上查找动态添加的类名。

1 个答案:

答案 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中找到该信息。