Я пытаюсь применить фильтр к массиву, так как он изменяется в JS, он возвращается обратно в HTML (из-за двусторонней привязки). Это контроллер я использую:Угловое: применение фильтров к ng-repeat
app.controller('controlador1', ["filterFilter", "$scope", function(filterFilter, $scope) {
this.array = [
{name: 'Tobias'},
{name: 'Jeff'},
{name: 'Brian'},
{name: 'Igor'},
{name: 'James'},
{name: 'Brad'}
];
var active = false;
$scope.applyFilter = function(){
if(!active){
$scope.arrayFiltrado = filterFilter(this.array, "a");
active = true;
}else{
$scope.arrayFiltrado = this.array;
active = false;
}
}
$scope.arrayFiltrado = this.array;
}]);
Кроме того, это мой шаблон HTML:
<!DOCTYPE html>
<html ng-app="miApp">
<head>
<meta charset="UTF-8">
<script src="angular.js"></script>
<script src="mainmodule.js"></script>
<link rel="stylesheet" href="bootstrap/css/bootstrap.css">
</head>
<body ng-app="miApp" ng-controller="controlador1">
<button type="button" class="btn btn-default" ng-click="applyFilter()">button</button>
<span ng-repeat="elem in arrayFiltrado">{{elem.name+" "}}</span>
</body>
</html>
Я хочу, чтобы применить/отключить фильтр, когда я нажимаю кнопку, но независимо от того, что я do, если я нажму кнопку, в HTML ничего не отображается. Это похоже на то, что массив стирается.
Может ли кто-нибудь сказать мне, что мне здесь не хватает?
бы нужно увидеть 'filterFilter' – Raulucco
фильтр работает правильно. Если я просто применил одно действие фильтрации в начале, оно работает. Проблема возникает, когда я запускаю опцию ng-click, что приводит к исчезновению списка имен. – Zerok