Angular:ng-显示一个重复元素

时间:2014-02-18 11:54:17

标签: javascript angularjs

我有一个表,每行都是使用ng-repeat生成的。其中一列有一个刷新图标,单击该图标执行任务。然而,在执行此任务时,我希望图标旋转; see here

我遇到的问题是,当我点击其中一个图标时,它们都旋转,而不是那一行。

<td class="text-center">
    <i ng-hide="refreshUserSpin" ng-click="refreshUser($index, user.id)" class="fa fa-refresh pointer"></i>
    <i ng-show="refreshUserSpin" class="fa fa-refresh fa-spin "></i>
</td>

所以在我的控制器中,我将refreshUserSpin设置为false:

app.controller('usersController', function($scope, Users) {

    $scope.refreshUserSpin = false;

    $scope.refreshUser = function(index, community_id) {

        $scope.refreshUserSpin = true;

        Users.refreshUser(community_id)
            .success(function(data) {

                $scope.users[index] = data.json;
                $scope.refreshUserSpin = false;
            });
    };

});

现在,这会将所有图标发送到旋转状态。处理这个问题的正确方法是什么,因此只对该行进行处理。

我尝试过这样的事情:

<i ng-show="refreshUserSpin.$index" class="fa fa-refresh fa-spin "></i>

然后做$scope.refreshUserSpin.index = true;,但这似乎不起作用。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

试试这个

<强> HTML

<td class="text-center">
    <i ng-hide="refreshUserSpin[$index]" ng-click="refreshUser($index, user.id)" class="fa fa-refresh pointer"></i>
    <i ng-show="refreshUserSpin[$index]" class="fa fa-refresh fa-spin "></i>
</td>

<强> JS

app.controller('usersController', function($scope, Users) {

    $scope.refreshUserSpin = {};

    $scope.refreshUser = function(index, community_id) {

        $scope.refreshUserSpin[index] = true;

        Users.refreshUser(community_id)
            .success(function(data) {

                $scope.users[index] = data.json;
                $scope.refreshUserSpin[index] = false;
            });
    };

});