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 项目。

有任何想法吗?

4

2 回答 2

1

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

把它放在你的控制器代码中:

$scope.$on('$destroy', function () {
     angular.forEach(nameArray, function (item) {
          item.hide = false;
     });
});
于 2015-07-01T21:16:48.270 回答
0

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

于 2015-07-01T21:11:37.117 回答