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

Angular routing definitions in partials instead of app.js

本文关键字:路由 定义 js app      更新时间:2023-09-26

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

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

其他路由定义位于每个部分 Js 文件(在控制器内)中,按示例文件 view1/view1 .js

angular.module('myApp.view1', ['ngRoute'])
.config(['$routeProvider', function($routeProvider) {
  $routeProvider.when('/view1', {
    templateUrl: 'view1/view1.html',
    controller: 'View1Ctrl'
  });
}])
和视图 2

/视图 2.js :

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

所以我明白,由于所有 Js 文件都正确包含,结果与所有路由都是在应用程序中完成的相同.js但我想知道为什么它是这样的结构。角度种子旨在成为Angular的"最佳实践"入门。所以我的问题来了,在每个部分 JS 文件中拆分路由定义而不是在应用程序中定义所有内容是否被认为是一种好的做法.js ?为什么?

谢谢你们 ! :)

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