这种依赖注入有什么问题?每次我将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');
};
}]);
答案 0 :(得分:1)
尝试将控制器作为字符串引用。 (在$ modal.open中)
controller: 'modalController'
你还需要将$ modal服务注入'PersonnelController',我相信注入'modalController'是不必要的。
personnelModule.controller('PersonnelController', ['$scope', 'personnelFactory', '$modal', function($scope, personnelFactory, $modal){
试试this Plunker。我做的最显着的改变是删除
<div ng-controller="modalController"></div>
和
<button ... ng-click="ok()">OK</button>
答案 1 :(得分:0)
不要将控制器注入彼此。我的意思是,你为什么要那样做?