如何显示已隐藏的ng-repeat项目

时间:2015-07-01 21:02:20

标签: angularjs angularjs-ng-repeat ng-hide

我有一个看起来像这样的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项目,然后从另一个视图返回。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

如果您的数据确实存在于服务中(这就是为什么它保持活动,因为服务是单例并且在您在路由之间导航时不会被破坏),那么您可以在隐藏属性时执行某种重置。你离开了你的视线。

将其放在您的控制器代码中:

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

答案 1 :(得分:0)

您可以尝试将所有隐藏名称存储在服务中,并在每次视图使用控制器时在控制器中进行查找。