选择除选中的NG-Repeat迭代之外的所有NG-Repeat迭代

Selecting all NG-Repeat iterations except the selected one

本文关键字:迭代 NG-Repeat 选择      更新时间:2023-09-26

是否有一种方法可以像jQuery一样选择ng-repeat的特定迭代?

当编辑一篇特定的文章时,我想让所有其他的文章都褪色,所以我使用了一个函数:

ng-click="edit(articleKey)"

并且将使用ng-class来执行指定的衰落。

我该如何使控制器中的函数具有这种行为?

你可以使用$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来淡出元素,将它们与选定的索引进行比较。

这应该会让你开始:

<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;
        }
    }
}