Выбор всех повторений NG-Repeat, кроме выбранной

0

Есть ли способ сделать jQuery как выбор конкретной итерации ng-repeat?

При редактировании конкретной статьи я хочу, чтобы все остальные статьи были выведены из строя, поэтому я использую функцию:

ng-click="edit(articleKey)"

И будет использовать ng-класс для выполнения указанного затухания.

Как бы я хотел, чтобы функция в контроллере имела такое поведение?

  • 0
    В основном я ищу вариант «не это».
  • 0
    Вы можете использовать $ index, чтобы узнать, в какой итерации вы находитесь.
Теги:
ng-class
ng-repeat

2 ответа

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-класс для постепенного исчезновения элементов, сравнивая их с выбранным индексом.

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню