Я только начинаю проект с помощью простого кода, но я стараюсь правильно его подключить. Вот мой код module.js:
(function() {
'use strict';
angular
.module('app')
.config(['$stateProvider', function appRouter($stateProvider) {
$stateProvider
.state('app', {
abstract: true,
url: '',
templateUrl: 'modules/app/index.html',
controller: 'appController'
})
.state('app.home', {
url: '/home',
templateUrl: 'modules/home/index.html',
controller: 'homeController'
})
}]);
})();
Итак, код в функции appController (ниже) должен быть запущен, но я ничего не получаю в консоли. Что я делаю не так?
app.controller.js:
(function() {
'use strict';
angular
.module('app')
.controller('appController', appController);
appController.$inject = [];
function appController() {
console.log('appController');
}
})();
Я не получаю никаких ошибок, поэтому я знаю, что мои модули созданы правильно.
Я думаю, что проблема, с которой вы можете столкнуться, заключается в том, что вы не создаете то, что я называю "корень", определение angular.module
.
В коде модуля вы ставите:
(function() {
'use strict';
angular
.module('app')
// omitted for brevity
И затем в вашем контроллере у вас есть:
(function() {
'use strict';
angular
.module('app')
// omitted for brevity
Я не помню его точно, но я думаю, что он рассматривает второй вызов .module
как другой или новый модуль.
Если вы измените вызов модуля .module
чтобы иметь []
в качестве второго параметра, он должен работать:
(function() {
'use strict';
angular
.module('app', [])
// omitted for brevity
Вы получили доступ к "домашнему" состоянию? Потому что, если вы этого не сделаете, вы ничего не получаете, поскольку состояние "приложение" (и его контроллер) не будет создаваться, если не будет зарегистрировано дочернее состояние (в данном случае "домашний") (поскольку "приложение" является абстрактным).
Не могли бы вы показать свое приложение /index.html и ваш home/index.html?