В Ui-маршрутизатор его легко сделать несколько раздела решает, определенные в конфигурации маршрутов, так что позволяет сказать что-то вроде:Angular2 маршрутизатор и несколько Разрешает в одном маршруте
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()
}
]
}
}];
при использовании маршрутизатора Angular2 это требует для реализации шаблона разрешения для параметра разрешения. Так что-то вроде этого:
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();
}
}
тогда в моем пути я сделать что-то вроде:
import { DashboardComponent } from './dashboard.component';
import { DashboardResolver } from './dashboard.resolver';
export const routes = [
{
path: '',
children: [
{
path: '',
component: DashboardComponent,
resolve: {
data: DashboardResolver
}
}
]
}
];
проблем есть только ОДИН решительности. Как реализовать несколько аргументов разрешения, таких как реализация ui-router?
Предположим, у вас есть 2 варианта; реализовать резольверы для каждого из этих входов или иметь разрешение вернуть объект со всеми вашими разрешениями вложенными. Первый кажется довольно церемониальным, а второй звучит довольно хаки, поэтому должен быть лучший способ.
вы можете продолжить работу с UIRouter в angular2 BTW :), я делаю это. –
Да, я знаю. Я просто экспериментирую; P – amcdnl
@amcdnl. Вам все еще нужна помощь? – AngularChef