In ui-Router seine leicht mehrere Entschlüsse in der Route-Konfiguration definiert zu machen, wie etwas lässt so sagen:Angular2 Router und mehrere Resolves in einer Route
export const APP_STATES: Ng2StateDeclaration[] = [
{
name: 'dashboard',
url: '/dashboard',
component: DashboardComponent,
resolve: [
{
token: 'playbookDurations',
deps: [DashboardService],
resolveFn: (svc: DashboardService) => svc.getPlaybookDurations()
},
{
token: 'playbookSuccesses',
deps: [DashboardService],
resolveFn: (svc: DashboardService) => svc.getPlaybookSuccesses()
},
{
token: 'playbookRuns',
deps: [DashboardService],
resolveFn: (svc: DashboardService) => svc.getPlaybookRuns()
},
{
token: 'activityLog',
deps: [DashboardService],
resolveFn: (svc: DashboardService) => svc.getActivityLog()
}
]
}
}];
wenn die Angular2 Router ist erfordert, dass Sie Implementieren eines Resolver-Musters für den Auflösungsparameter. So etwas wie folgt aus:
import { Resolve, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
import { Injectable } from '@angular/core';
import { DashboardService } from '.';
@Injectable()
export class DashboardResolver implements Resolve<any> {
constructor(private dashboardService: DashboardService) { }
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
return this.dashboardService.get();
}
}
dann in meinen Weg, den ich so etwas wie:
import { DashboardComponent } from './dashboard.component';
import { DashboardResolver } from './dashboard.resolver';
export const routes = [
{
path: '',
children: [
{
path: '',
component: DashboardComponent,
resolve: {
data: DashboardResolver
}
}
]
}
];
Problem gibt es nur eine Lösung ist es. Wie implementiert man mehrere Auflösungsargumente wie die ui-Router-Implementierung?
Ich nehme an, Sie haben 2 Möglichkeiten; Implementiere Resolver für jeden dieser Eingänge ODER lasse die Auflösung ein Objekt zurückgeben, in dem alle deine Resolver verschachtelt sind. Das erste scheint ziemlich zeremoniell und das zweite klingt ziemlich hacky, also muss es einen besseren Weg geben.
können Sie mit UIRouter in angular2 BTW fortfahren :), mache ich so. –
Ja, ich weiß. Ich experimentiere nur, P – amcdnl
@amcdnl. Brauchst du noch Hilfe dabei? – AngularChef