是否有一种方法可以像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;
}
}
}