我在AngularJS中有对象:
genres = [{
label: "Trance",
genre: "8",
position: 8
}, {
label: "House",
genre: "2",
position: 8
}]
如何通过筛选这个数组genre
的ng-click
?例如ng-click="filterByGenre(2)"
。
它应该只返回一个元素:
{
label: "House",
genre: "2",
position: 8
}
这是您尝试实现的简单工作提琴。它确实按属性过滤对象genre
,您可以Id
在文本字段中搜索。例如8
。
看一下filter:{genre:searchGenre}
保存有genre
要过滤的属性名称和模型输入的过滤器声明searchGenre
。有关更多信息,请查看filter的AngularJS文档。
<div ng-controller="MyCtrl">
<h1>Filter items</h1>
<input type="text" ng-model="searchGenre">
<h2>Genres</h2>
<div ng-repeat="genre in genres | filter:{genre:searchGenre}">
{{genre.label}}
</div>
</div>
var myApp = angular.module('myApp',[]);
function MyCtrl($scope) {
$scope.genres = [{
label: "Trance",
genre: "8",
position: 8
}, {
label: "House",
genre: "2",
position: 8
}];
}
<div ng-controller="MyCtrl">
<div>Filter items</div>
<input type="text" ng-model="searchGenre">
<div>Genres</div>
<div ng-repeat="genre in filtered">
{{genre.label}}
</div>
</div>
var myApp = angular.module('myApp',[]);
function MyCtrl($scope, filterFilter) {
$scope.genres = [{
label: "Trance",
genre: "8",
position: 8
}, {
label: "House",
genre: "2",
position: 8
}];
//init search phrase
$scope.searchGenre = '';
//init filtered scope
$scope.filtered = [];
/**
* Watch keyword change
*/
$scope.$watch('searchGenre', function(term) {
$scope.filtered = filterFilter($scope.genres, {'genre': term});
});
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句