选择除选定的一个以外的所有NG重复迭代

时间:2015-09-28 16:40:57

标签: javascript css angularjs ng-repeat ng-class

有没有办法像选择特定的ng-repeat迭代一样进行jQuery?

在编辑特定文章时,我希望所有其他文章都淡出,以便我使用函数:

ng-click="edit(articleKey)"

将使用ng-class进行指定的淡入淡出。

如何在控制器中使用此功能?

2 个答案:

答案 0 :(得分:2)

你可以使用$ index来做到这一点。

像这样。

  <ion-list>
        <ion-item ng-click="selected.value = $index" ng-repeat="item in items" ng-hide="selected.value === $index">
           Hello, {{item}}!
        </ion-item>
  </ion-list>

单击时存储选定的值,而不是ng-hide,您可以使用ng-class淡出元素,将它们与选定的索引进行比较。

答案 1 :(得分:0)

这应该让你前进:

<tbody>
    <tr ng-repeat="product in products">                       
        <td ng-class="{'faded_out': !article[product.id].selected, 'faded_in': article[product.id].selected}" ng-click="edit('product.id')">{{ product.id }}</td> 
    </tr>
</tbody>

$scope.products = [{name: "All", articleKey: "212", selected = true},
                    {name: "Termi", articleKey: "4324" selected = true},
                    {name: "911", articleKey: "2323" selected = true}];

$scope.edit = function (articleKey){
    for (var i = 0; i < $scope.products.length; i++) {
        if ( $scope.products[i].articleKey === $scope.products[i].articleKey) {
             $scope.products[i].selected = true;
        } else {
            $scope.products[i].selected =false;
        }
    }
}