Есть ли способ сделать jQuery как выбор конкретной итерации ng-repeat?
При редактировании конкретной статьи я хочу, чтобы все остальные статьи были выведены из строя, поэтому я использую функцию:
ng-click="edit(articleKey)"
И будет использовать ng-класс для выполнения указанного затухания.
Как бы я хотел, чтобы функция в контроллере имела такое поведение?
Вы можете использовать $ 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-класс для постепенного исчезновения элементов, сравнивая их с выбранным индексом.
Это должно заставить вас идти:
<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;
}
}
}