在 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 添加到该按钮上.
请考虑以下示例来理解我的问题:
<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 添加到该按钮上.