0
私はCanActivate(Angular Documentation)を試してみました。セキュリティを必要とするすべてのルートに追加する必要があるため、ルートを作成する前にRouterOutletを拡張し、認証を確認する必要がありました。認証のために角2 RC 4のRouterOutletを拡張する方法
import {Directive, ViewContainerRef, ComponentFactoryResolver, ResolvedReflectiveProvider} from '@angular/core';
import {Router} from '@angular/router/src/router';
import {RouterOutletMap} from '@angular/router/src/router_outlet_map';
import {RouterOutlet} from '@angular/router/src/directives/router_outlet';
import {ActivatedRoute} from '@angular/router/src/router_state';
@Directive({
selector: 'router-outlet'
})
export class SecuredRouterOutlet extends RouterOutlet {
constructor(outletMap: RouterOutletMap,
location: ViewContainerRef,
componentFactoryResolver: ComponentFactoryResolver,
name: string) {
super(outletMap, location, componentFactoryResolver, name);
}
activate(activatedRoute: ActivatedRoute, providers: ResolvedReflectiveProvider[], outletMap: RouterOutletMap) {
/* TODO : Check for authentication */
return super.activate(activatedRoute, providers, outletMap);
}
}
私は指定されたパラメータは、コールのターゲットのいずれかの署名と一致しないエラーが発生します。コンストラクタ内のsuper()メソッド用。 これはRouterOutletを拡張する適切な方法ですか?助けてください.. ありがとう