2016-03-24 35 views
0

我正在写我的angular2应用程序的一些路线帮助器函数..是否有可能注入路由器类在正常的功能....而不是注入它的类的构造函数。使用内部功能的路由器

我试图做这样的事情

import {Router} from "angular2/router"; 
    export function show404() 
    { 
     var _location=new Location(); 
     var _router=new Router(.......); 
     this._location.replaceState('/'); 
     this._router.navigateByUrl('/404/'); 

    } 

是否可以使用路由器类这样的,如果可能的话那我该怎么?

回答

1

角度DI只注入到构造函数中,仅用于创建它自己的实例。

你可以做的是使用喷油器并从喷油器请求路由器。

bootstrap(AppComponent, [ 
    ROUTER_PROVIDERS, 
]).then((appRef: ComponentRef) => { 
    console.log("booting") 
    appInjector(appRef.injector); 
}); 

... 

let router = appInjector.get(Router); 

对于一个完整的工作示例看到这个Plunker从这个讨论https://github.com/angular/angular/issues/4112

+0

感谢这就是我正在寻找....工作像一个魅力 – Jorin