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

How do I show an ng-repeat item that has already been hidden

我有一个 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 项目,然后 returns 从另一个视图返回它。

有什么想法吗?

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

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

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

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