如何显示已隐藏的 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;
});
});
我有一个 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;
});
});