angular.js:13708错误:[ng:areq]参数' homeController'不是一个功能,未定义

时间:2016-09-24 14:12:39

标签: javascript angularjs json angular-routing

无法访问homeController(模块控制器)。 点击" home"在控制台上链接获取错误" homeController不是一个函数;未定义。

所以,我需要注册这个控制器 谢谢,  拉胡

twoPageApp.js

 * Created by rahul on 9/24/2016.
 */
(function(){
        angular.module("twoPageApp",["ngRoute"])
            .config(function($routeProvider){
               $routeProvider
                   .when('/home',{
                      templateUrl:'/JS/twoPageAppJS/partials/home.html',
                      controller: 'homeController',
                      resolve:{
                           homeContent:['$http',function($http){
                               return $http.get('/homeContent.json');
                           }]
                       }
                   })
                   .when('/page_one',{
                        templateUrl:'/Js/twoPageAppJS/partials/pageOne.html',
                        controller:'pageOneController',
                        resolve:{
                            homeContent:['$http',function($http){
                                return $http.get('/pageOneContent.json');
                            }]
                        }
                   })
                   .when('/page_two',{
                       templateUrl:'/JS/twoPageAppJS/partials/pageTwo.html',
                       controller:'pageTwoController.js',
                       resolve:{
                           homeContent:['$http',function($http){
                               return $http.get('/pageTwoContent.json');
                           }]
                       }
                   })
            });
    })();

twoPageApp.Controller.js

       (function(){
    angular.module("twoPageApp").controller("tpaController",
        ['$scope',function($scope){
            $scope.name="this is twoPageApp js controller";
        }])
})();

module COntroller(homeController.js)

    /**
 * Created by rahul on 9/24/2016.
 */
(function(){
    angular.module("twoPageApp",[]) //here is the change...
        .controller("homeController",['$scope','$rootScope','homeContent',function($scope,$rootScope,homeContent){

            $rootScope.stub={
                homeContent:homeContent.data
            };
            $scope.hello="rahul";
            console.log("raja");
        }]);
})();

针对home.jsp

[![<div ng-app="twoPageApp" ng-controller="tpaController">
    <div>
        <a href="#/home">home</a>
        <a href="#/page_one">page One</a>
        <a href="#/page_two">page Two</a>
    </div>
    <div ng-view></div>
</div>][1]][1]

2 个答案:

答案 0 :(得分:2)

将{]参数移至homeController

内的homeController.js注册
angular.module("twoPageApp") // remove the [] parameter

答案 1 :(得分:0)

您必须以注册homeController控制器的方式注册tpaController。 您已设置$routeProvider以使用homeController网址上的/home,但您尚未在代码中的任何位置注册。