AngularJS - 另一个注射器问题

时间:2014-07-10 15:07:51

标签: angularjs

这种依赖注入有什么问题?每次我将modalController注入...好吧,任何东西......我得到一个注射器错误。我已将js文件作为脚本引用包含在内,并且我引用了我的模态模块。这是实际错误:

错误:[$ injector:unpr] http://errors.angularjs.org/1.3.0-beta.13/ $ injector / unpr?p0 = modalControllerProvider%20%3C-%20modalController

personnelModule.controller('PersonnelController', ['$scope', 'personnelFactory','modalController', function($scope, personnelFactory, modalController){
    personnelFactory.getPersonnel().then(function(personnel){
        $scope.personnel = personnel;
        $scope.events = {};
        $scope.events.addPerson = function() {
            $modal.open({
              templateUrl: '../SiteAssets/views/ModalTemplate.html',
              controller: modalController
            });
        };
    });
}]);

modalModule.controller('modalController', ['$scope', '$modalInstance', function($scope, $modalInstance){
      $scope.ok = function () {
        alert('ok clicked');
        $modalInstance.dismiss('canceled'); 
      };
      $scope.cancel = function () {
        alert('cancel clicked');
        $modalInstance.dismiss('canceled'); 
      };
}]);

2 个答案:

答案 0 :(得分:1)

尝试将控制器作为字符串引用。 (在$ modal.open中)

controller: 'modalController'

修改

你还需要将$ modal服务注入'PersonnelController',我相信注入'modalController'是不必要的。

personnelModule.controller('PersonnelController', ['$scope', 'personnelFactory', '$modal', function($scope, personnelFactory, $modal){

编辑2

试试this Plunker。我做的最显着的改变是删除

<div ng-controller="modalController"></div>

<button ... ng-click="ok()">OK</button>

答案 1 :(得分:0)

不要将控制器注入彼此。我的意思是,你为什么要那样做?