3

通常我会在我的组件中这样做。

import { Router } from "@angular/router";

@Component({ ... })
export class CompyTheComponent {
  constructor(private router: Router) { 
    console.log(router.url);
  }
}

如果我想在注入的情况下获得它的引用怎么办?我试图创建它,但在我无法弄清楚的所有参数上都死了。Ans 因为这不是通常的(也不推荐的)接近它的方法,所以没有太多的 googlearch 。

let routy : Router = new Router(...);
4

1 回答 1

3

injector.ts使用以下代码创建一个文件:

import { Injector } from "@angular/core";

let appInjectorRef: Injector;

export function appInjector (injector?: Injector): Injector {
    if (!injector) {
        return appInjectorRef;
    }
    appInjectorRef = injector;
    return appInjectorRef;
}

然后在你的main.ts

bootstrap([...]).then((appRef: { injector: Injector }) => appInjector(appRef.injector))
  .catch((err: Error) => console.error(err));

然后您可以将其用作:

const router: Router = appInjector().get(Router);

无论如何,我建议对此进行依赖注入。

于 2017-08-22T22:18:08.643 回答