Javascript AngularJS-未调用控制器
我只是用一些简单的代码开始一个项目,但我正在努力正确地连接它。下面是我的module.js代码:Javascript AngularJS-未调用控制器,javascript,angularjs,Javascript,Angularjs,我只是用一些简单的代码开始一个项目,但我正在努力正确地连接它。下面是我的module.js代码: (function() { 'use strict'; angular .module('app') .config(['$stateProvider', function appRouter($stateProvider) { $stateProvider .state('app', {
(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');
}
})();
我没有收到任何错误,因此我知道我的模块已正确实例化。您是否访问了“主”状态?因为如果你不这样做,你就得不到任何东西,因为“应用”状态(以及它的控制器)不会被实例化,除非子状态(在本例中是“home”)被访问(因为“应用”是抽象的)
您能展示一下您的app/index.html和home/index.html吗?我想您可能遇到的问题是,您没有创建我称之为“根”
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
controller:'modules/app/app.controller.js'
应该是controller:'appController'
,如果你在应用程序中链接了controller.js。AFAIKThanks,刚刚改变了这一点,但仍然是相同的结果。我将更新帖子。url:“
不会将该状态设为默认状态,并且它是抽象的,因此除非您位于子路由之一,/home
,否则它不会加载。您似乎根本没有处理默认路线/
。如果您有问题,应将其添加为注释