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 回答
0

Jeff 的代码有小错误:我们只需要传递函数名来过滤,如下所示

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

$scope.myFilter = function(item) {
    // access to scope here
}
于 2018-09-17T12:29:35.163 回答