首页 > 解决方案 > 未知提供者:$scopeProvider <- $scope <- AccountSummaryController

问题描述

我正在开发 Angular JS 应用程序来制作银行应用程序,但我被困在一个地方,我的测试用例给出了找不到控制器的错误。我不知道我哪里出错了,任何帮助都会得到帮助'

应用程序.js

(function() {
    'use strict';

    // CONTROLLERS
    angular
        .module('abcbankApp.controllers', []);

    // SERVICES
    angular
        .module('abcbankApp.services', []);

    angular
        .module('abcbankApp', ['ui.router', 'ui.grid', 'abcbankApp.accountSummary', 'abcbankApp.transaction', 'abcbankApp.login'])
        .config(routeConfig);


    function routeConfig($stateProvider,$urlRouterProvider) {
       $urlRouterProvider.when("", "/login");

       $urlRouterProvider.when("", "/login");
        // ROUTES
        // Please use State provoders for routing between login,accountSummary, transactions and search
        // define  $stateProvider(state) with url,templateUrl,controllers and controllerAs
         $stateProvider
          .state("accountSummary", {
            url: "/accountSummary",
            templateUrl: "./templates/account-summary/account-summary.html",
            controller : "AccountSummaryController",
            controllerAs :"ActSumCtrl",
        })
        .state("login", {
            url: "/login",
            templateUrl: "./templates/login/login.view.html",
            controller :"LoginController",
            controllerAs :"LoginCtrl",
        })
}

})();

AccountSummaryController.js

(function() {
    'use strict';
   var appContr = angular.module('abcbankApp.accountSummary', ['abcbankApp.accountSummaryService']);
    appContr.controller('AccountSummaryController', function($scope,AccountSummaryService,$state) {
    var ActSumCtrl = this;
    ActSumCtrl.accountList = [];
    ActSumCtrl.accountList = AccountSummaryService.getAccountSummary();
    });

})();

账户服务.js

(function() {
    'use strict';

     var appServc = angular.module('abcbankApp.accountSummaryService', []);
appServc.factory('AccountSummaryService', ['$http',
  function($http) {
    return {
      getAccountSummary: function() {
          var data;
          $http.get('./data/account-summary.json')
         .success(function(response) {
           data = response.data;
        });
        return data;
      }
    };
  }]);

})();

但我收到这样的错误

 Executed 0 of 12 SUCCESS (0 secs / 0 secs)

[1A[2KNode.js (linux; U; rv:v8.15.1) abcbankApp.accsummary module AccountSummaryController Controller definition FAILED

    Error: [$injector:unpr] Unknown provider: $scopeProvider <- $scope <- AccountSummaryController

标签: javascriptangularjsangularjs-directiveangular-ui-router

解决方案


As per documentation - https://docs.angularjs.org/guide/controller, the second parameter to an controller is an array.

appContr.controller('AccountSummaryController', [$scope, function($scope,AccountSummaryService,$state) {
    // code
}]);

推荐阅读