6

$scopeフィルター内の変数を変更する必要があります。$scope変数はng-show属性に使用され、情報はフィルターでのみアクセスされます。これは、いくつng-repeatかの情報があり、いくつかのフィルターによって適用され、フィルターがすべての結果を削除してメッセージを表示するタイミングを知る必要があるためです...ここに例: (これは単なるアイデアです)

.controller("thing", function() {
   $scope.showText = false;
})

.filter("filterText", function() {
   return function(information) {
     if (information == "") { /* NEED TO CHANGE $scope.showText to true */ }
   }
})

HTML:

<div ng-view="showText"> Some Text here </div>
<div ng-repeat="info in information | filterText"></div>

ありがとう。

4

2 に答える 2

4

そもそもフィルターのデータを変更したくないというコメントに同意しますが、本当に苦労している場合は、コントローラー内でフィルター関数を定義するだけでこれを達成できる可能性があります (実際の角度の「フィルター」) を使用して、次のように使用します。

ng-repeat="item in items | filter:myFilter()"

$scope.myFilter = function(item) {
    // access to scope here
}
于 2013-11-10T06:58:07.093 に答える