在 class 中使用 Injector.resolveAndCreate 注入路由器

Inject Router using Injector.resolveAndCreate inside a class

是否可以使用 Injector.resolveAndCreate() 注入路由器?

import {ExceptionHandler, Injectable, Inject,Injector} from 'angular2/core';
import {Router,ROUTER_PRIMARY_COMPONENT} from 'angular2/router';

@Injectable()
export class MyExceptionHandler implements ExceptionHandler{

    constructor(public router: Router) { }
    call(error, stackTrace = null, reason = null) {
        console.log("ERROR >> " + error);
        console.log("STACKTRACE >> " + stackTrace);
        console.log("REASON >> " + reason);
        let injector: any = Injector.resolveAndCreate([Router]);
        let router: Router = injector.get(Router);
        router.navigateByUrl('/error');       
        
    }
}

出现异常:令牌路由器主要组件实例化期间出错! (e -> Router -> RouteRegistry -> Token RouterPrimaryComponent).

当然,如果您使用已注册 ROUTER_PROVIDERS 的注入器,但您通常不需要 a Router 实例,但 the Router 实例 - 应用程序中使用的实例。为此,您需要使用与 Angular 应用程序相同的 Injector

这可能就是您要找的东西