使用Angular仅定位一个元素

时间:2016-05-26 08:44:16

标签: angularjs


我对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>

先谢谢!

1 个答案:

答案 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。