2016-03-24 12 views
0

Angular2 uygulamam için bazı yol yardımcısı işlevleri yazıyorum .. sınıfın yapıcısına enjekte etmek yerine normal işlevde Router sınıfının enjekte edilmesi mümkündür.İç Yönlendirme Sınıfı iç işlevini kullanma

Bu

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

    } 

gibi bir şey yapmaya çalışıyorum o sonra nasıl mümkün olduğunu Eğer yapabilirsem, böyle Yönlendirici sınıfını kullanmak mümkün mü?

cevap

1

Köşeli DI, yalnızca kuruculara ve yalnızca kendisini oluşturduğu örneklere enjekte eder.

Yapabilecekleriniz, enjektörü kullanmak ve yönlendiriciyi enjektörden istemektir.

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

... 

let router = appInjector.get(Router); 

tam çalışma Örneğin bu tartışma https://github.com/angular/angular/issues/4112 bu Plunker bakın.

+0

Teşekkürler bu aradığım şey .... bir cazibe gibi çalıştı – Jorin

İlgili konular