2016-06-29 2 views
0

컨트롤러 외부에서 함수를 정의했습니다. 함수 중 하나에서 $ filter를 사용하고 싶습니다. 컨트롤러 내부에서 작동한다는 것을 알 수 있지만 ($ scope.test1 작동) doSomething에서 $ filter 함수를 찾을 수 없습니다. 제발 이해해주세요. 컨트롤러 내부에서 doSomething을 움직이면 제대로 작동하지만 그렇게하고 싶지 않습니다.

Plunkr

angular.module('myapp',[]) 
 
    
 
     .controller('appController',['$scope','$filter',function($scope,$filter) { 
 
    
 
     $scope.doSomething = doSomething; 
 
    
 
     //WORKS 
 
     $scope.test1 = $filter('filter')([{typeid:1},{typeid:2}], { typeid: 2 }, true); 
 
     
 
     
 
     }]); 
 
    
 
    
 
    function doSomething($filter) { 
 
    
 
     //DOES NOT WORK 
 
     test2 = $filter('filter')([{typeid:1},{typeid:2}], { typeid: 1 }, true); 
 
     alert(test2); 
 
     
 
    }
때문에 의존성 주입의 제어부 내부

답변

2

$filter 작품은 해봐요 기능 상태 (컨트롤러를 선언 할 때, 또한 $scope$filter로서의 종속성을 지정) 하지 않습니다.

내 질문은 다음과 같습니다

1) 당사 컨트롤러 외부 doSomething를 선언? 재사용인가요?

2) 어디에서 doSomething으로 전화 할 예정입니까?

0

Plunkr

angular.module('myapp',[]) 

    .controller('appController',['$scope','$filter',function($scope,$filter) { 

    $scope.doSomething = function() { 
     doSomething($scope, $filter); 
    }; 

    }]); 


function doSomething($scope,$filter) { 

    $scope.name = 'hello world'; 

    $scope.result = $filter('filter')([{typeid:1},{typeid:2}], { typeid: 1 }, true); 
    alert($scope.result); 

} 
시도
관련 문제