在 AngularJS 中,是否可以将源元素作为其 ng-class 属性中的参数传递?

In AngularJS, is it possible to pass the source element as a parameter in its ng-class attribute?

请考虑以下示例来理解我的问题:

<button ng-class="$scope.controllerMethod($thisButton)" />

在我的 controllerMethod 中,我想获取调用 ng-class 的按钮的引用。可能吗?

(类似于在 ng-click 按钮中传递 $event.target,这样我就可以从控制器读取调用者)。

有帮助吗?谢谢!!

如果您对菜单中的每个按钮进行硬编码,则不需要 ng-class。简单的ng-click=doSomething('$event'),其他的就和你正常的Javascript一样,随心所欲$event.target.

如果你想用 angular 的方式,每个按钮都需要在控制器中有一个对应的模型。

<ul>
   <li ng-repeat='btn in buttons'>
   <button ng-class='{"highlight":btn.clicked}' ng-click='doSomething(btn)'></button>
   </li>
</ul>

在你的控制器中:

$scope.buttons = [{text:'button1'},{text:'button2'}];

$scope.doSomething = function(btn){
   btn.clicked = true;
}

在此示例中,ng-class 将监视每个按钮的 clicked 属性,如果为真,则将 highlight class 添加到该按钮上.