6

[更新为焦点问题]。AngularDart在很多方面都很好地支持模块化应用程序设计。路线设计也是这样吗?IE,

问题:一个应用程序可以有多个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,
         ]);
    ...
  }
}

用例:我正在考虑让我的一些学生在同一个 AngularDart 项目上工作,但在(大部分)互斥的功能集上工作。理想情况下,我希望他们独立工作(一旦就“顶级”路由 URL 前缀达成一致)。在这种情况下,他们最终会拥有自己的RouteInitializers。能够在他们的项目子文件夹中“拖放”到集成时间,而不是将路由初始化复制粘贴到单个类文件中,那就太好了。


[问题的原始版本](鉴于接口名称是RouteInitializer,而不是可能RouterInitializer,给人的印象是可以定义的不止一个。)

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

编辑:实际上最后一个问题在分层路由的背景下有其自身的优点,所以我把它分解到这里:angulardart-namespace-of-route-names-hierarchical-too

4

1 回答 1

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()
  });
}

飞镖

library foo;

import '';

configureFooRoutes(views) => ngRoute(
    path: '/foo',
    mount: ...);

条形飞镖

library bar;

import '';

configureBarRoutes(views) => ngRoute(
    path: '/bar',
    mount: ...);

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

于 2014-03-04T16:04:29.257 回答