Как показать элемент повторения ng, который уже был скрыт

0

У меня есть 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 снова после того, как пользователь покинет это представление, а затем вернется к нему из другого представления.

Есть идеи?

Теги:
angularjs-ng-repeat
ng-hide

2 ответа

1
Лучший ответ

Если ваши данные действительно находятся в сервисе (именно поэтому он поддерживается в живых, поскольку сервисы являются одиночными и не уничтожаются при навигации по маршрутам), тогда вы можете сделать что-то вроде сброса в свойство hide, когда вы перемещаетесь с вашего взгляда.

Поместите это в свой код контроллера:

$scope.$on('$destroy', function () {
     angular.forEach(nameArray, function (item) {
          item.hide = false;
     });
});
  • 0
    Тестирую сейчас. Благодарю.
  • 0
    Спасибо, Омри, твое понимание привело меня к решению, в котором я нуждался.
Показать ещё 1 комментарий
0

Вы можете попытаться сохранить все скрытое имя в службе и просмотреть запрос в контроллере каждый раз, когда представление использует контроллер.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню