Я начал играть с угловым, и я пытаюсь написать простое приложение, состоящее из категорий, содержащих элементы. (Я пытаюсь реализовать учебник для своих нужд)AngularJS can not get category «Все» при фильтрации
Теперь я пытаюсь добавить фильтр, чтобы выбирать элементы по категориям. Я могу отфильтровать их, если не выбрать все категории. Я не могу получить все категории. У меня есть края услуги:
angular.module('swFrontApp')
.controller('EdgesController', function ($scope, edges,categories) {
$scope.edges = edges.query();
$scope.categories = categories.query();
$scope.filterBy = {
search: '',
category: $scope.categories[0]
};
var selectedEdge = null;
$scope.selectEdge = function(edge) {
selectedEdge = (selectedEdge === edge) ? null : edge;
};
$scope.isSelected = function(edge) {
return edge === selectedEdge;
};
$scope.displayRequirements = function(reqs) {
var result = '';
for (var i = 0; i < reqs.length; i ++) {
if (result !== '') { result += ', '}
if (reqs[i].name) {
result += reqs[i].name+ ' ';
}
result += reqs[i].value;
}
return result;
};
});
и я стараюсь фильтровать их с помощью:
angular.module('swFrontApp').filter('edges', function() {
return function(edges, filterBy) {
return edges.filter(function(element, index, array) {
return element.category.name === filterBy.category.name;
});
};
});
Вот мой HTML, чтобы края с категориями фильтра
<select
name="category"
ng-model="filterBy.category"
ng-options="c.name for c in categories"
class="form-control"></select>
<ul>
<li ng-repeat-start="edge in edges | filter:{name: filterBy.search}| edges: filterBy " ng-click="selectEdge(edge)">
<span class="label label-default">{{ edge.category.name }}</span>
{{edge.name}}
<span class="text-muted">({{ displayRequirements(edge.requirements) }})</span>
</li>
<li ng-repeat-end ng-show="isSelected(edge)">
{{edge.description}}
</li>
</ul>
Я образовал Мои Plunker link является Вот. Thanks