2016-12-15 6 views
0

을 참조 할 때 문제가 발생하여 프로젝트에 AngularJs 지시문을 구현하려고하지만이 문제로 인해 문제가 발생합니다. 나는 App.js, ControllerA (지시어를 포함하고있다)와 ControllerB를 가지고있다. 두 컨트롤러는 서로 다른 폴더에 있습니다 : ControllerA의 FolderA와 ControllerB의 FolderB각도 지시문

html 파일의 ControllerA에서 생성 된 지시문을 FolderB에 호출하고 싶습니다.

문제는 내가 응용 프로그램을로드하려고 할 때, 각도 모듈 인젝터에 대해 불평이다 :

Uncaught Error: [$injector:modulerr] Failed to instantiate module private_home due to:(…)

App.js

'use strict'; 

angular.module("private_home", ['private.controllers']) 

    .config(['$stateProvider', '$translateProvider', '$urlRouterProvider', 
      function($stateProvider, $translateProvider, $urlRouterProvider){ 

     ... 
    }]); 

ControllerA

'use strict'; 

angular.module("private.controllers", []) 

    .controller('ControllerA' ,['$scope', function($scope){ 

     $scope.users= [...]; 

    .directive('ControllerADirective' ,['controllerADirective', function(){ 

     return{ 

      restrict : 'E', 

      templateUrl : 'find.htm', 

      controller : 'ControllerA', 

      controllerAs : 'CotrollerADirective', 

      bindToController: true 
     } 
}]); 

ControllerB (나는 그러나 다만 경우에, 그것은이 켜지지하지 알고 ...)

'use strict'; 

angular.module("private.controllers") 

    .controller('ControllerB' ,['$scope', function($scope){ 

    }]); 

그리고이 태그와 HTML의 지시를 호출 사전에

< controller-a-directive >< /controller-a-directive >

감사합니다!

+0

'.directive ('ControllerADirective'[ 'controllerADirective', 기능() {': 그에 주입 nothign있다 함수를 호출하고 'controllerADirective'라는 서비스가 없으므로'.directive ('ControllerADirective', function() {'.) 오류에 대해 질문 할 때 정확하고 완전한 오류 메시지를 게시하십시오. 메시지는 오류가 무엇인지 알 수 있습니다. 그래서 오류 메시지가 있습니다. –

+0

선언문에서 지시문 이름이 camelCased인지 확인하십시오 :'.directive ('controllerADirective'...' –

답변

0

컨트롤러 선언을 닫지 않았습니다. 두 모듈 모두 모듈 자체에 선언되어 있으며 지시문에 컨트롤러를 연결하는 경우 실제로는 정반대입니다.

일단 모듈에 연결되면 컨트롤러를 모든 템플릿 또는 지시문에 첨부하고 각 컨트롤러에 대해 새로운 인스턴스를 생성 할 수 있습니다.

지시어는 모듈에서 선언 된 컨트롤러 또는 템플릿에서 호출 할 수 있으며 각 선언이있는 새 인스턴스를 다시 만듭니다.

'use strict'; 

angular.module("private.controllers", []) 

.controller('ControllerA' ,['$scope', function($scope){ 

    $scope.users= [...]; 
}]) 

.directive('ControllerADirective' ,['controllerADirective', function(){ 

    return{ 

     restrict : 'E', 

     templateUrl : 'find.htm', 

     controller : 'ControllerA', 

     controllerAs : 'CotrollerADirective', 

     bindToController: true 
    } 
}]);