我正在为我的angular2应用程序编写一些路由辅助函数..是否可以在正常函数中注入Router类....而不是在类的构造函数中注入它。
我正在尝试做这样的事情
import {Router} from "angular2/router";
export function show404()
{
var _location=new Location();
var _router=new Router(.......);
this._location.replaceState('/');
this._router.navigateByUrl('/404/');
}
是否可以像这样使用Router类,如果有可能那么我该怎么办?
答案 0 :(得分:1)
Angular 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。