2016-03-24 64 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