У меня есть ng-repeat, который выглядит так:
<div class="name" ng-hide="name.hide" ng-repeat="name in nameArray" ng-click="checkName(name)">
Когда один из элементов ng-repeat нажат, мне нужно, чтобы он был скрыт, поэтому в моем контроллере я делаю это:
$scope.checkName = function(name){
name.hide = true;
}
Все работает отлично, но мне нужно выяснить способ показать все скрытые элементы ng-repeat снова после того, как пользователь покинет это представление, а затем вернется к нему из другого представления.
Есть идеи?
Если ваши данные действительно находятся в сервисе (именно поэтому он поддерживается в живых, поскольку сервисы являются одиночными и не уничтожаются при навигации по маршрутам), тогда вы можете сделать что-то вроде сброса в свойство hide, когда вы перемещаетесь с вашего взгляда.
Поместите это в свой код контроллера:
$scope.$on('$destroy', function () {
angular.forEach(nameArray, function (item) {
item.hide = false;
});
});
Вы можете попытаться сохранить все скрытое имя в службе и просмотреть запрос в контроллере каждый раз, когда представление использует контроллер.