angularjs - 如何更改过滤器内的 $scope 变量

标签 angularjs

我需要换一个 $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>

谢谢。

最佳答案

我同意您可能不希望首先更改过滤器中的数据的评论,但是如果您真的很紧张,您可以通过在 Controller 中定义一个过滤器函数来实现这一点(而不是一个实际的 Angular “过滤器”),然后就这样使用它:

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

$scope.myFilter = function(item) {
    // access to scope here
}

关于angularjs - 如何更改过滤器内的 $scope 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17116908/

相关文章:

angularjs - 带有复选框的 ngTable 未选中网格上的所有复选框

AngularJS - 如何路由到不同模块中的 Controller

javascript - 在 Angular 中,创建不带 # 链接且不修改服务器的 spa

javascript - 在 AngularJS 中使用 POST 到 .net Web API 时出错

javascript - 如何创建指令模块名称的隔离范围?

javascript - 无法添加第二个 ng-controller

javascript - 如果客户端产生错误,则 Protractor 测试失败

javascript - 如何在 ng-hover 事件中传递元素的 ID?

angularjs - ng-model 不适用于 select 指令

angularjs - 通过工厂服务获取时,ng-repeat 不显示数据