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

Смежные вопросы