Angular Dart中的模块化路线设计支持独立开发的功能集?

Pat*_*lin 6 dart angular-routing angular-dart

[ 更新以重点提问].AngularDart 在很多方面都很好地支持模块化应用程序设计.路线设计也是如此吗?也就是说,

问题:一个应用程序可以有多个RouteInitializer例如,以下是可能的:

class MyAppModule extends Module {
  MyAppModule() { ...
    type(RouteInitializer, 
       // Currently implementedBy takes only one RouteInitializer? 
       // Here we propose, e.g., to allow a list.
       implementedBy: 
         [MyAppRouteInitializerForFeatureSetA,
         MyAppRouteInitializerForFeatureSetB,
         MyAppRouteInitializerForFeatureSetC,
         ]);
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

使用案例:我正在考虑让我的一些学生参与同一个AngularDart项目,但是(主要是)相互排斥的功能集.理想情况下,我希望他们独立工作(一旦达成"顶级"路由URL前缀).在这种情况下,他们最终会有自己RouteInitializer的.能够在项目子文件夹中"删除",集成时间,而不是将路由初始化复制粘贴到单个类文件中,这将是一件好事.


[问题的原始版本](假设接口名称RouteInitializer不是可能RouterInitializer给出的印象,可以定义多个.)

  1. 路线设计也是如此吗?也就是说,
  2. Router一个Angular Dart应用程序可以关联多少个实例?(我想只有一个.)
  3. 一个应用程序可以有多个RouteInitializer?(假设接口名称是RouteInitializer,而不是可能RouterInitializer,给出的印象可以定义多个.
  4. 如果RouteInitializer允许多个,那么addRoute name参数的范围是多少?

编辑:实际上最后一个问题在分层路由的上下文中具有自己的优点,所以我把它考虑在这里:angulardart-namespace-of-route-names-hierarchical-too.

pav*_*lgj 2

RouteInitializer正如您所指出的,拥有多个s 很复杂。

从技术上讲,您不需要角度的帮助来实现这一点。

my_routes.dart

import 'foo.dart' as foo;
import 'bar.dart' as bar;

myRouteInitializer(router, views) {
  views.configure({
    'foo': foo.configureFooRoutes(),
    'bar': bar.configureBarRoutes()
  });
}
Run Code Online (Sandbox Code Playgroud)

foo.dart

library foo;

import '';

configureFooRoutes(views) => ngRoute(
    path: '/foo',
    mount: ...);
Run Code Online (Sandbox Code Playgroud)

酒吧飞镖

library bar;

import '';

configureBarRoutes(views) => ngRoute(
    path: '/bar',
    mount: ...);
Run Code Online (Sandbox Code Playgroud)

这样你的学生就可以独立工作。