我对Angular有一点问题,但我真的找不到任何解决方案。
我有一个带有几个元素的ngRepeat。其中一个,一个简单的按钮,不得不改变点击颜色。但如果我点击它,其他按钮也会改变颜色。
我怎么能只针对一个?
在我的控制器中:
$scope.changeClass = function(){
var x = angular.element(this);
$scope.class = "icon-fav";
if ($scope.class === "icon-fav"){
$scope.class = "icon-fav-clicked";
}
else{
$scope.class = "icon-fav";
}
};
HTML:
<button ng-class="class" class="actions-icon animated bounceInUp icon-fav" ng-click="changeClass();tagLike(post)" ng-show="isLoggedIn()"></button>
先谢谢!
答案 0 :(得分:1)
在ngRepeat中的对象上放置一个“clicked”属性,并使用ng-style设置该类。
快速而肮脏的例子:
<button ng-class="{'icon-fav-clicked': post.clicked, 'icon-fav': !post.clicked}" class="actions-icon animated bounceInUp icon-fav" ng-click="post.clicked=true;tagLike(post)" ng-show="isLoggedIn()"></button>
您可以在tagLike()函数中设置post.clicked = true,以获得更清晰的ng-click。