簡體   English   中英

將控制器注入AngularJS中的另一個控制器時出錯

[英]Error in injecting a controller into another controller in AngularJS

我的代碼是這樣的

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',  ['$controller', function($scope, rateRequestService,$controller) {
   // your stuff
}]);

甚至那也不正確,因為依賴項和args的名稱需要匹配。 嘗試:

.controller('ReadOnlyController',  ['$scope','rateRequestService','$controller', function($scope, rateRequestService,$controller) {
   // your stuff
}]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM