不调用AngularJS routeprovider

时间:2016-08-21 10:45:13

标签: javascript angularjs routing ng-view route-provider

我在Google上搜索了很多关于路由的信息,并在stackoverflow上看过问题,例如this 1this 2this 3this 4。但是,没有结果。

我已加入AngularJS 1.5.8.jsangular-route.js

HTML:

<!doctype html>
<html ng-app="employeesApp">
    <head>
        <title>Injecting view</title>              
    </head>
    <body > 

        <p>Hey! View should be injected between these statements</p>
        <div ng-view></div>  
        <p>Hey! View should be injected between these statements</p>

        <script src="scripts/angular.js"></script>
        <script src="scripts/angular-route.js"></script> 
        <script src="app/app.js"></script>
        <script src="app/controllers/employeesController.js"> </script>
    </body>
</html>

Employees.html:

<h2>Employees</h2>
<article>This is employee view!:)</article

employeesController.js:

(function()
{
    var employeesController=function($scope, foo, bar) {//THIS CODE SNIPPET IS NOT CALLED 
                 alert('a1');
                 debugger;
                 $scope.sortBy='name';
                 $scope.reverse=false;

                 $scope.employees= [
  {joined:'2010-12-02', name:'Jon', city:'Reading', orderTotal:49.9956},  
  {joined:'1995-01-25', name:'Ben', city:'Las Vegas', orderTotal:519.99}, 
  {joined:'1994-06-15', name:'Joseph', city:'New York', orderTotal:344.99},
  {joined:'1998-03-18', name:'Adam', city:'Seattle', orderTotal:1021.5}
                 ];

                 $scope.doSort=function(propName){
                     $scope.sortBy = propName;
                     $scope.reverse=!$scope.reverse;
                 };
             };

    employeesController.$inject=['$scope'];
    angular.module('employeesApp',[]).controller('employeesController', 
                    employeesController);
}());

app.js:

(function() {   
    debugger;        //this code snippet works    
    var app=angular.module('employeesApp',['ngRoute']);  //this code snippet works  

    app.config(function($routeProvider){ //THIS CODE SNIPPET IS NOT CALLED
            alert('in');
            debugger;
            $routeProvider
            .when('/', {
            templateUrl: 'app/views/employees.html', 
            controller: 'employeesController'
        })
        .otherwise( { redirectTo: '/' });                    
        });
}());

我仔细检查了所有指令和代码,但未注入employee.html 有谁知道我做错了什么?我正在使用AngularJS 1.5.8.js

1 个答案:

答案 0 :(得分:2)

我看到的唯一问题是您正在重新定义控制器中的 employeesApp

angular.module('employeesApp', []).controller('employeesController', employeesController);

省略[]部分

    angular.module('employeesApp').controller('employeesController', employeesController);  

您只需定义一次模块。使用angular.module('modulename', arrayofdependencies or empty array)

在其他任何地方,您只需使用getter语法获取模块并添加部件,即控制器,指令等。不要在这里使用数组。 angular.module('modulename').controller