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
}]);