[更新了以重点关注问题]。 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,
]);
...
}
}
用例:我正在考虑让我的一些学生参与同一个AngularDart项目,但是(主要是)相互排斥的功能集。理想情况下,我希望他们独立工作(一旦达成“顶级”路由URL前缀)。在这种情况下,他们最终会拥有自己的RouteInitializer
。能够在项目子文件夹中“删除”,集成时间,而不是将路由初始化复制粘贴到单个类文件中,这将是很好的。
[问题的原始版本](假设界面名称为RouteInitializer
,而不是RouterInitializer
,则给出的印象可以定义多个。)
Router
个实例与Angular Dart应用相关联? (我想只有一个。)RouteInitializer
吗? (假设界面名称为RouteInitializer
,而不是RouterInitializer
,则给出的印象可以定义多个。RouteInitializer
,那么addRoute
name
参数的范围是多少?编辑:实际上最后一个问题在分层路由的上下文中具有自己的优点,因此我将其考虑在内:angulardart-namespace-of-route-names-hierarchical-too。
答案 0 :(得分:2)
正如您所指出的那样,拥有多个RouteInitializer
是很复杂的。
从技术上讲,你不需要帮助形成角度来做到这一点。
<强> my_routes.dart 强>
import 'foo.dart' as foo;
import 'bar.dart' as bar;
myRouteInitializer(router, views) {
views.configure({
'foo': foo.configureFooRoutes(),
'bar': bar.configureBarRoutes()
});
}
foo.dart
library foo;
import '';
configureFooRoutes(views) => ngRoute(
path: '/foo',
mount: ...);
bar.dart
library bar;
import '';
configureBarRoutes(views) => ngRoute(
path: '/bar',
mount: ...);
通过这种方式,您的学生可以独立工作。