【发布时间】:2014-04-16 22:08:33
【问题描述】:
我在我的 html 文件中使用 ng-repeat 来显示过滤后的项目:
<li ng-repeat="item in (filteredItems = (items | filter:query))">
{{ item.name }}
</a>
在控制器中,我想根据他的一个属性获取项目的索引。
精度:我希望在过滤后的列表中获得索引,而不是在整个列表中。
例如,这里的项目女巫名称的索引是some_item_7。
var app = angular.module('myApp', []);
app.controller('MyCtrl', ['$scope',
function MyCtrl($scope) {
$scope.query = 'some';
$scope.items =
[
{ name: 'some_item_1' },
{ name: 'another_item_2' },
{ name: 'some_item_3' },
{ name: 'another_item_4' },
{ name: 'some_item_5' },
{ name: 'another_item_6' },
{ name: 'some_item_7' },
{ name: 'another_item_8' },
{ name: 'some_item_9' }
];
$scope.itemNext = function (item) {
console.log(item.name);
};
$scope.getIndexFromName = function (name) {
console.log("trying to get the index of the item with name = " + name);
}
$scope.getIndexFromName('some_item_7');
}
]);
http://plnkr.co/edit/C8gL9qV1MyonTwDENO9L?p=preview
有什么想法吗?
【问题讨论】:
-
用代码更新答案以初始化过滤后的数组,以及一个新的 plunker 演示。 plnkr.co/NSvBz1yWvmeFgXITutZF
-
非常感谢@j.wittwer!!
标签: angularjs angularjs-ng-repeat angularjs-controller