Angular2 Router und Mehrere Beschlüsse in einer route

Im ui-router leicht zu machen, mehrere aufgelöst wird definiert in der route-Konfiguration, so können etwas sagen wie:

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

bei der Verwendung der Angular2 router erfordert, dass Sie implementieren eine resolver-Muster für die resolve-parameter. So etwas wie dieses:

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 meine route, die ich tun 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 ist es gibt nur EINE lösen. Wie funktioniert eine Implementierung mehrerer beheben Argumente wie die ui-router-Implementierung unterstützt?

Ich nehme an, du hast 2 Möglichkeiten; umsetzen Resolver für jede dieser Eingaben ODER haben die Entschlossenheit zurück, ein Objekt mit all Ihren behebt verschachtelt. Der erste scheint ziemlich Zeremoniell und die zweite klingt ziemlich hacky-so hat es der bessere Weg zu sein.

Sie können fortfahren, mit UIRouter in angular2 BTW :), ich bin dabei.
Ja, ich weiß. Ich bin einfach zu Experimentieren ;P
Brauchen Sie noch Hilfe?
Ich denke, jedes feedback würde helfen, alle @AngularFrance

InformationsquelleAutor amcdnl | 2017-01-09

Schreibe einen Kommentar