简体   繁体   English

不调用AngularJS routeprovider

[英]AngularJS routeprovider is not called

I've googled a lot of info about routing in AngularJS and have seen questions at stackoverflow, for example, this 1 , this 2 , this 3 , this 4 . 我已经搜索了很多有关AngularJS中路由的信息,并在stackoverflow上看到了问题,例如this 1this 2this 3this 4 However, there is no result. 但是,没有结果。

I've included AngularJS 1.5.8.js and angular-route.js . 我已经包括AngularJS 1.5.8.jsangular-route.js

HTML: 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: Employees.html:

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

employeesController.js: 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: 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: '/' });                    
        });
}());

I double checked all directives and code, however employee.html is not injected. 我仔细检查了所有指令和代码,但是没有注入employee.html
Does anybody know what I am doing wrong? 有人知道我在做什么错吗? I am using AngularJS 1.5.8.js . 我正在使用AngularJS 1.5.8.js

The only problem i see is you are redefining employeesApp in your controller 我看到的唯一问题是您正在重新定义控制器中的employeeApp

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

Omit the [] part 省略[]部分

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

You only define your modules once. 您只定义模块一次。 Using angular.module('modulename', arrayofdependencies or empty array) 使用angular.module('modulename', arrayofdependencies or empty array)

Everywhere else you just get the module and add parts, ie Controllers, directives etc, using getter syntax. 您只需使用getter语法在其他任何地方获取模块并添加部件,即控制器,指令等。 Do not use array here. 不要在这里使用数组。 angular.module('modulename').controller

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM