AngularJS -Controller未被调用

时间:2015-07-06 19:57:28

标签: javascript angularjs

我刚刚用一些简单的代码开始了一个项目,但我正在努力将其正确连接起来。这是我的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');    
        }

})();

我没有收到任何错误,所以我知道我的模块已经正确实例化了。

2 个答案:

答案 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?