2014-01-30 5 views
6

[Aktualisiert zu konzentrieren Frage]. AngularDart unterstützt modulare App-Design in vielerlei Hinsicht. Ist dies auch der Fall für Route Design? I.e.,Modulares Routendesign in Angular Dart zur Unterstützung unabhängig entwickelter Feature-Sets?

Frage: Kann eine App mehr als eine RouteInitializer haben? Z. B. würde folgendes möglich sein:

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, 
     ]); 
    ... 
    } 
} 

Use Case: Ich erwäge einige meiner Schüler fragen auf dem gleichen AngularDart Projekt zu arbeiten, aber auf (meist) sich gegenseitig ausschließende Feature-Sets. Idealerweise möchte ich, dass sie unabhängig arbeiten (sobald ein "Top-Level" -Route-URL-Präfix vereinbart wurde). In einem solchen Fall würden sie am Ende ihre eigenen RouteInitializer s haben. Es wäre schön, wenn man in ihren Projekt-Unterordnern einfach "ablegen" könnte, und zwar mit der Integrationszeit, anstatt die Initialisierung der Route in eine einzelne Klassendatei zu kopieren.


[Original-Version Frage] (Da die Schnittstellennamen RouteInitializer, anstatt möglicherweise RouterInitializer, vermittelt den Eindruck, mehr als eine definiert werden kann.)

  1. Ist dies auch der Fall für Route Design? Wie viele Router Instanzen können einer Angular Dart App zugeordnet werden? (Ich nehme nur einen.)
  2. Kann eine App mehr als eine RouteInitializer haben? (Da der Schnittstelle Name ist RouteInitializer, anstatt möglicherweise RouterInitializer, vermittelt den Eindruck, mehr als eine definiert werden kann.
  3. Wenn mehr als ein RouteInitializer erlaubt ist, was ist dann der Umfang der addRoutename Parameter?

Edit: eigentlich die letzte Frage hat Verdienst seiner eigenen im Rahmen der hierarchischen Routen, so dass ich einkalkuliert es hier aus:.. angulardart-namespace-of-route-names-hierarchical-too

+0

Was ist der Anwendungsfall? Warum würden Sie mehrere Router benötigen? – pavelgj

+0

@pavelgj, falls Sie es nicht gesehen haben, habe ich dem Fragetext eine Beschreibung eines Anwendungsfalles hinzugefügt. –

Antwort

2

mit mehreren RouteInitializer kompliziert ist, wie Sie darauf hingewiesen

Technisch brauchen Sie keine Hilfe, um diese Winkelform zu erreichen.

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: ...); 

Auf diese Weise Ihre Studen ts können unabhängig arbeiten.