2014-10-03 3 views
0

내가 다른 모듈에서 재사용 할 필요하므로, 페이지 매김을위한 별도의 모듈을 만들려면,하지만 난 (다른 모듈) 다음은각도 모듈 종속성

모듈 의존성에서 함수를 호출하는 방법을 모른다 내 주요 모듈 : 여기

var App = angular.module('search', ['pagination']); 

App.controller('MainController', ['$scope', '$pagination' function($scope, $pagination) { 
    $scope.testFunction(); //function from pagination module controller 
}]) 

내 매김 모듈입니다 : 내가 얻을

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

App.controller('PaginationController', ['$scope', function($scope) { 
    $scope.testFunction = function(){ 
     console.log("pagination module"); 
    } 
}]) 

오류 :

,
Error: [$injector:unpr] Unknown provider: $paginationProvider <- $pagination 
+1

:

//you inject your pagination module here var searchModule = angular.module('search', ['pagination']); //and you ALSO need to inject your pagination's service into your controller searchModule.controller('MainController', ['$scope', 'paginationSvc' function($scope, paginationSvc) { //function from pagination module controller paginationSvc.testFunction(); }]) 

그리고 당신의 페이지 매김 모듈 :

var pagination = angular.module('pagination', []); //declare your pagination service here pagination.factory('PaginationSvc', [function(){ return { testFunction:testFunction }; function testFunction(){ console.log('This is from pagination module'); } }]) 

아마 little plnkr 도움이 될

는 검색 모듈이 있다고 가정 '$ pagination '이라고 불린다. 그게 어디 있니? 존재하지 않는 것을 주사 할 수 없습니다. 페이지 생성 모듈에 컨트롤러를 만들고 다른 컨트롤러에 주입하는 이유는 무엇입니까? – Ian

+0

어떻게 할 수 있습니까? – Egizeris

+0

https://docs.angularjs.org/guide/services 여기에는 많은 내용이 있습니다. 페이지 매김 모듈에 컨트롤러를 만드는 대신 서비스/팩토리를 만들고 (다른 이름을 지정하십시오.) 앵귤러 모듈은 일반적으로 "$"로 시작하며 직접하지 않는 것이 좋습니다 – Ian

답변

0

두 모듈에서 자원을 공유하려면 팩토리 또는 서비스를 선언하십시오. D 당신은 서비스 (제공자)를 선언하지 않은

0

컨트롤러에 컨트롤러를 삽입 할 수 없습니다. pagination 모듈은 컨트롤러에 삽입 될 서비스 나 공장 또는 제공 업체를 선언해야합니다.

See docs here.

0

당신은 페이지 매김 지시어를 만들고 삽입해야 당신이 그것을 필요로하는 곳에 그. this post에서 아이디어를 얻을 수 있습니다.