Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何扩展Angular 2 RC 4的RouterOutlet进行感应_Angular_Angular2 Routing - Fatal编程技术网

如何扩展Angular 2 RC 4的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';

我试过CanActivate(Angular文档),它可以工作。因为我必须将其添加到每个需要安全性的路由中,所以我想在创建路由之前扩展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的正确方法吗。。?请帮忙。。
谢谢

在RC4中,建议您实现类CanActivate,而不是实现RouterOutlet

请参阅Angular 2文档了解如何执行此操作


您只需返回一个布尔值,表示是否允许用户通过,然后在路由中引用该类(假设您使用的是新的组件路由器)。

在RC4中,建议您实现类CanActivate,而不是实现RouterOutlet

请参阅Angular 2文档了解如何执行此操作

您只需要返回一个布尔值,表示是否允许用户通过,然后在路由中放置对该类的引用(假设您使用的是新组件路由器)