我刚刚用一些简单的代码开始了一个项目,但我正在努力将其正确连接起来。这是我的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');
}
})();
我没有收到任何错误,所以我知道我的模块已经正确实例化了。
答案 0 :(得分:0)
我认为你可能遇到的问题是你没有创造我称之为" root" 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
答案 1 :(得分:-1)
您是否访问了“家庭”状态?因为如果你不这样做,你就没有得到任何东西,因为“app”状态(和它的控制器)不会被实例化,除非访问子状态(在这种情况下是“home”)(因为“app”是抽象的)。
你能否展示你的app / index.html和你的home / index.html?