在过滤器中使用$ scope控制器?

时间:2014-04-17 15:50:39

标签: javascript angularjs

我在我的控制器中声明$ scope.something,如

app.controller('MainControl', function($scope){
$scope.something = 1;
});

然后如何在我的过滤器范围内访问它?喜欢

app.filter("myCustomFilter", function () {
// here
});

如果我只是$ scope.something那么显然它不起作用。

1 个答案:

答案 0 :(得分:0)

在这里聊天之后是工作解决方案http://jsbin.com/juxebewu/4/edit   

<div ng-controller="sCtr">
    <ul>
      <li>{{aa | friends:this}}</li></ul>{{showItem}}
      <p ng-show="showItem">click</p>
    </ul>
</div>

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.14/angular.min.js"></script>

var app = angular.module('App', []);
var targetOfFriendTasks = 1;
var user = [];
user[0]= {uId: 1};

app.filter("friends", function () {
   return function (input, s) {
       var output = [];
       for (var i in input) {            
           if (input[i].name.length >= 1 && input[i].uId == targetOfFriendTasks) {      
               output.push(input[i]);
           }
       }

       if (targetOfFriendTasks != user[0].uId) {
           return output;
       } else {
            s.showItem = true;
       }

   };
});

app.controller('sCtr', function ($scope) {

  $scope.aa = [{name:"lorem", uId:1}, {name:"ipsum", uId:2}];
    $scope.showItem = false;

});