#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);