2015-07-01 2 views
0

У меня есть нг-повтор, который выглядит следующим образом:Как показывает нг повтора элемента, который уже спрятанный

<div class="name" ng-hide="name.hide" ng-repeat="name in nameArray" ng-click="checkName(name)"> 

Когда один из нг повтора элементов щелкают, мне это нужно, чтобы быть скрыты так, в мой контроллер, я делаю это:

$scope.checkName = function(name){ 
    name.hide = true; 
} 

это все работает отлично, но мне нужно, чтобы выяснить способ, чтобы показать все скрытые элементы нг-повторить еще раз после того, как пользователь покидает эту точку зрения, а затем возвращается к нему с другого вида.

Любые идеи?

+0

что 'response' в' нг-шкура = "response.hide" '? везде, где вы имеете дело с 'name' .... – kaveman

+0

Извините. Я хотел набрать name.hide. Я редактировал свой вопрос. –

+0

Разве 'nameArray' не уничтожен, как только вы перемещаетесь вдали от своего вида? Что означает, что он восстанавливается, когда вы возвращаетесь, и все они должны быть снова видны? –

ответ

1

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

Место это в коде контроллера:

$scope.$on('$destroy', function() { 
    angular.forEach(nameArray, function (item) { 
      item.hide = false; 
    }); 
}); 
+0

Тестирование сейчас. Благодарю. –

+0

Спасибо, Омри, ваше понимание привело меня к решению, в котором я нуждался. –

+0

@BanjoDrill Рад помочь! –

0

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