如何扩展Angular 2 RC 4的RouterOutlet进行感应
我试过CanActivate(Angular文档),它可以工作。因为我必须将其添加到每个需要安全性的路由中,所以我想在创建路由之前扩展RouterOutlet并检查身份验证如何扩展Angular 2 RC 4的RouterOutlet进行感应,angular,angular2-routing,Angular,Angular2 Routing,我试过CanActivate(Angular文档),它可以工作。因为我必须将其添加到每个需要安全性的路由中,所以我想在创建路由之前扩展RouterOutlet并检查身份验证 import {Directive, ViewContainerRef, ComponentFactoryResolver, ResolvedReflectiveProvider} from '@angular/core'; import {Router} from '@angular/router/src/router';
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的正确方法吗。。?请帮忙。。
谢谢在RC4中,建议您实现类CanActivate,而不是实现RouterOutlet 请参阅Angular 2文档了解如何执行此操作
您只需返回一个布尔值,表示是否允许用户通过,然后在路由中引用该类(假设您使用的是新的组件路由器)。在RC4中,建议您实现类CanActivate,而不是实现RouterOutlet 请参阅Angular 2文档了解如何执行此操作 您只需要返回一个布尔值,表示是否允许用户通过,然后在路由中放置对该类的引用(假设您使用的是新组件路由器)