部分中的角度路由定义而不是app.js

时间:2015-01-12 03:03:54

标签: javascript angularjs angularjs-routing

我最近使用Angular Seed Project(https://github.com/angular/angular-seed/)开始了一个新项目,我注意到一些奇怪的事情。我对Angular很新,但在所有教程中我做的路由部分总是在“主”JS文件中(通常名为app.js)。但是,在这个“种子项目”中,app.js中唯一的路由定义是:

config(['$routeProvider', function($routeProvider) {  $routeProvider.otherwise({redirectTo: '/view1'});}]);

其他路由定义在示例文件view1 / view1.js的每个partials Js文件中(在控制器内):

angular.module('myApp.view1', ['ngRoute'])

.config(['$routeProvider', function($routeProvider) {
  $routeProvider.when('/view1', {
    templateUrl: 'view1/view1.html',
    controller: 'View1Ctrl'
  });
}])

和view2 / view2.js:

angular.module('myApp.view2', ['ngRoute'])

.config(['$routeProvider', function($routeProvider) {
  $routeProvider.when('/view2', {
    templateUrl: 'view2/view2.html',
    controller: 'View2Ctrl'
  });
}])

所以我理解,因为所有的Js文件都被正确包含,结果就像在app.js中完成所有路由一样,但我想知道为什么它的结构是这样的。有角度的种子是Angular的“最佳实践”首发。所以这是我的问题,在每个部分JS文件中拆分路由定义而不是在app.js中定义所有内容是一种很好的做法吗?为什么?

谢谢你们! :)

1 个答案:

答案 0 :(得分:1)

你可以使用这两种方法,两种方法都是正确的,并且我认为使用其中一种或另一种方法比组织代码更有优势,它甚至不会影响性能你的应用。 对于小型演示应用程序(教程)更容易将所有路由放在一起,但对于现实生活中的大型或可扩展应用程序,角度种子中使用的方法似乎更集中,您可以将控制器,路由器和视图保持在一起文件夹(模块)