Javascript 在AngularJS中将一个控制器注入另一个控制器时出错
我的代码是这样的Javascript 在AngularJS中将一个控制器注入另一个控制器时出错,javascript,angularjs,Javascript,Angularjs,我的代码是这样的 Controller.JS angular.module('RateRequestApp.controllers', []).controller('ReadOnlyController', '$controller', function($scope, rateRequestService,$controller) { $controller('ModalDemoCtrl',{$scope : modalDCtrl }); $scope.rateD
Controller.JS
angular.module('RateRequestApp.controllers', []).controller('ReadOnlyController', '$controller', function($scope, rateRequestService,$controller) {
$controller('ModalDemoCtrl',{$scope : modalDCtrl });
$scope.rateData = [];
rateRequestService.getData().success(function(response) {
$scope.rateData = response;
}).error(function (data, status, headers, config) {
modalDCtrl.openModal();
});
});
angular.module('RateRequestApp.controllers').controller('ModalDemoCtrl', function ($scope, $modal, $log) {
this.openModal = function (size) {
var modalInstance = $modal.open({
templateUrl: 'myModalContent.html',
controller: 'ModalInstanceCtrl',
size: size,
});
};
});
App.JS
angular.module('RateRequestApp', [
'RateRequestApp.services',
'RateRequestApp.controllers',
'ui.bootstrap'
]);
我觉得一切都很好,但这是个错误
Error: [ng:areq] Argument 'ReadOnlyController' is not a function, got string
有人能指出我做错了什么吗?您使用的依赖项声明不正确。它需要包装在一个数组中。而不是:
.controller('ReadOnlyController', '$controller', function($scope, rateRequestService,$controller) {
// your stuff
});
尝试:
即使这样也不正确,因为依赖项和参数的名称需要匹配。尝试:
.controller('ReadOnlyController', ['$scope','rateRequestService','$controller', function($scope, rateRequestService,$controller) {
// your stuff
}]);
是的,他抢先告诉我你必须使用$injector或者你需要把函数和依赖参数包装在[]中。这个答案应该被接受。
.controller('ReadOnlyController', ['$scope','rateRequestService','$controller', function($scope, rateRequestService,$controller) {
// your stuff
}]);