Контроллер с именем ‘MyPageController’ не зарегистрирован Ошибка (Angular1.5.3)

#angularjs #angular1.6

#angularjs #angular1.6

Вопрос:

Я работаю над довольно старым проектом, в котором используется Angular1.5.3, и теперь я хочу добавить новый компонент. Я настроил все как другой компонент, теперь новая страница может отображаться (.html работает нормально), но данные не загружаются (контроллер). и я получил ошибку:

The controller with the name 'MyPageController' is not registered

вот некоторый код проекта:

в mypage.controller.js:

 (function () {
  'use strict';

  angular
    .module('forecastAngular')
    .controller('MypageController', MypageController);

  /** @ngInject */
  function MyPageController($scope, $rootScope, $state, $http, $timeout, usSpinnerService, dataFactory, $q, CommonServices, baseUrl) { 
... 
}

 

и в index.route.js:

 (function () {
  'use strict';

  angular
    .module('forecastAngular')
    .config(routerConfig);

  /** @ngInject */
  function routerConfig($stateProvider, $urlRouterProvider) {

  $stateProvider
  .state('mypage', {
        url: '/mypage',
        views: {
          'body': {
            templateUrl: 'app/myPage/mypage.html',
            controller: 'MypageController',
          }
        },
        data: {
          authorizedRoles: ['Admin', 'Manager', 'Director', 'Registered User', 'HR'],
          menuName: "mypage",
          isShowSearch: false,
          isShowDomain: false
        }
      });
}

 

и я также искал эту проблему, кто-то сказал внедрить использование контроллера :

 angular.module('myApp', []).controller('MyController', [function() {
  // ...
}]);

 

но я пытался. у меня не работает. а другой компонент настроен так, как я вставил выше. и он работает нормально.

может кто-нибудь сказать мне, как я могу правильно зарегистрировать контроллер?

Комментарии:

1. Я не вижу ни одного контроллера с именем XXXController, объявленного где-либо в опубликованном вами коде. Я также не вижу определения какой-либо функции MyPageController. Только UtforcastController, но который нигде не используется. Фактический код и фактическая ошибка имеют значение. Опубликуйте это вместо какого-то воображаемого кода / ошибки.

2. извините, имя файла mypage.html , mypage.controller.js . Я думаю, что первый символ должен быть прописным, поэтому я использую `function MypageController` для ввода функции

Ответ №1:

Имя функции неверно.

 .controller('MyPageController', MyPageController);
 

Должно быть:

 .controller('MyPageController', UtforcastController);
 

Эта функция MyPageController не существует.

Комментарии:

1. извините, но UtforcastController это ‘MyPageController’, я не хочу раскрывать содержимое моего проекта, поэтому я переименовал его. В моем проекте имя является единым.

Ответ №2:

вы сказали, что ваше имя модуля forecastAngular , но в другом коде, позже вы создали другой модуль, который не ссылается ни на какой другой, и он создает пустой контроллер

Примечание:

module(x) является получателем

module(x, []) является установщиком

Итак, вы пытаетесь получить модуль, который вы, возможно, не определили здесь:

 angular
    .module('forecastAngular')
    .config(routerConfig);