0

次のような ng-repeat があります。

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

ng-repeat 要素の 1 つがクリックされると、それを非表示にする必要があるため、コントローラーで次のようにします。

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

それはすべて正常に機能しますが、ユーザーがこのビューを離れてから別のビューに戻った後に、すべての非表示の ng-repeat アイテムを再度表示する方法を見つける必要があります。

何か案は?

4

2 に答える 2

1

データが実際にサービス内にある場合 (サービスはシングルトンであり、ルート間を移動しても破棄されないため、データが保持されるのはそのためです)、移動するときに非表示プロパティに一種のリセットを行うことができます。あなたの見解から。

これをコントローラーコードに配置します。

$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 に答える