2014-04-16 4 views
1

컨트롤러에서 모듈 내에서 호출하고자하는 함수를 정의했습니다. 이것이 어떻게 가능한지?모듈 내 컨트롤러 함수 호출

컨트롤러 :

var App = angular.module('App',['ngResource','App.filters']); 

App.controller('ExerciseCtrl', ['$scope','$http', function($scope, $http) { 

    $scope.toggleOn = function (arr, id) { 
     // Some code 
    }; 

}]); 

그리고 모듈 :

angular.module('App.filters', []).filter('someFilter', [function() { 
    return function() { 
     someArray = []; 
     toggleOn(someArray, 1); // Wish to call this function 
    }; 
}]); 

나는 모듈 내에서 toggleOn를 호출합니다.

+0

당신이 달성하려고하는 정확히 설명해 주시겠습니까 암호? 첫눈에, 그것은 필터 내에서 스코프 함수를 호출하는 일을하는 "각도 방식"처럼 보이지 않습니다. 비록 당신이 이것을 원한다고하더라도, 각도 서비스를 사용하는 것은 아마도 갈 길일 것입니다. – ppa

+0

@ppa, 그 더미 코드, 나는 내 질문에 900 줄의 코드를 붙여 넣기를 원하지 않았다. 내가 사용하고자하는 내 컨트롤러에는 많은 기능이 있습니다. 필터 내의 컨트롤러에서 함수를 호출하는 것이 최선의 방법이 아니라면 어떻게해야하는지 설명해 주시겠습니까? – JavaCake

답변

1

을 필터링하는 범위를 전달합니다

var App = angular.module('App',['ngResource','App.filters']); 

App.service('toggleService', function(){ 
    var service = { 
     toggleOn: function(arr, id){ 

     } 
    }; 

    return service; 
}); 

App.controller('ExerciseCtrl', ['$scope','$http', 'toggleService', function($scope, $http, toggleService) { 

    $scope.toggleOn = toggleService.toggleOn; 

}]); 

angular.module('App.filters', []).filter('someFilter', ['toggleService', function (toggleService) { 
    return function() { 
     someArray = []; 
     toggleService.toggleOn(someArray, 1); // Wish to call this function 
    }; 
}]); 
0
angular.module('App.filters', []).filter('someFilter', [function() { 
    return function (scope) { 
     someArray = []; 
     scope.toggleOn(someArray, 1); // Wish to call this function 
    }; 
}]); 

그리고 내 머리,이 같은 아마 뭔가의 상단 오프

<span ng-controller="ExerciseCtrl">{{someFilter | this}}</span> 
+0

내가 정의한 var App = angular.module ('App', [ 'ngResource', 'App.filters']);을 잊어 버렸습니다. 내 편집 확인 – JavaCake

관련 문제