Angular JS控制器未被实例化

时间:2016-04-26 03:17:10

标签: javascript angularjs

我有这个角度应用程序,我只运行我的网站的一个网页。 我有一个主应用程序,它使用我作为依赖项的另一个模块。

我遇到的问题是我的控制器内部没有任何内容正在运行。为什么我的控制器无法运行?

我的路线确实带来了视图但是我知道该模块正在运行。 我摆脱了我的数据服务,以确定它不是它。 函数输出前的 console.log ,但函数中没有任何内容运行。 我也有没有控制台错误。

app.js:

(function(){

    'use strict'; 

    var dependencies = [
        'ghpg', 
        'ngRoute'

    ];  

    angular.module('blogger', dependencies)
    .config(Config);  

    Config.$inject = ['$locationProvider'] 

    function Config($locationProvider){

        $locationProvider.hashPrefix('!'); 
    } 

    if (window.location.hash === '#_=_'){
        window.location.hash = '#!'; 
    } 

    //bootstrap angular

    angular.element(document).ready(function(){
        angular.bootstrap(document, ['ghpg']); 
    });
})();

模块:

(function(){

    'use strict'; 

    var dependencies = [ 'ngRoute' ];   

    angular.module('ghpg', dependencies)
    .run(init)
    init.$inject = ['$rootScope','$location' ];

    function init($rootScope, $location){
        var vm  = this;         
    } 
})();

查看:

<div class="container-fluid" data-ngController="blogController as vm"> 
    <h2> Articles </h2>     
    <div class="post-listing" data-ng-repeat=" post in vm.data">
        <p> {{ post  }} </p> 
    </div>  

</div> 

控制器:     (功能(){             &#39;使用严格的&#39;;

        angular
        .module('ghpg')
        .controller('blogController', blogController);

        blogController.$inject = ['$scope'];
        ////
        console.log("In controller file");
        function blogController($scope){
                console.log('running controller');
                var vm = this;

                vm.data = blogContent.getContent();
                console.log(vm.data);
        }
})();

我想知道它是否与引导我的应用程序有关? (但即使没有明确的ng-app,它仍然有效,所以我认为我的引导确实有效)

我的下一个最好的猜测是我的html中的控制器设置不正确,但每次我弄乱它时,我都会得到相同的结果或控制台中的错误,但它仍然无法正常工作。

1 个答案:

答案 0 :(得分:1)

blogController.$inject = ['$scope','blogController']

您正试图将控制器注入控制器。将其更改为 blogController.$inject = ['$scope']function blogController($scope)

你的意思是写吗? blogController.$inject = ['$scope','blogContent']

我看到你在blogContent上调用了一个方法,我没有看到它注入任何地方。

修改

data-ngController应为data-ng-controller