如何在不注入Angular路由器的情况下获取Angular路由器的实例?

时间:2017-08-22 17:44:41

标签: angular angular-routing injectable

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

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

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

如果我想获取没有注入它的参考怎么办?我试图创造它,但死于我无法弄清楚的所有参数。 Ans因为它不是通常的(也不推荐)接近它的方式,所以没有太多googlearch。

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

1 个答案:

答案 0 :(得分:1)

使用以下代码创建名为CardID | timein | timeout ------------------------------------------------------- 4946 |8/11/2017 2:00:00 PM | 8/11/2017 3:30:00 PM 6422 |8/5/2017 1:15:00 PM | 8/5/2017 2:45:00 PM 6422 |8/12/2017 1:15:00 PM | 8/12/2017 2:45:00 PM 6538 |8/7/2017 5:30:00 PM | 8/7/2017 8:30:00 PM 6538 |8/4/2017 8:00:00 AM | 8/4/2017 11:00:00 AM 6538 |8/3/2017 5:30:00 PM | 8/3/2017 8:30:00 PM 7442 |8/10/2017 9:00:00 AM | 8/10/2017 12:00:00 PM 7442 |8/8/2017 4:00:00 PM | 8/8/2017 7:00:00 PM 7442 |8/1/2017 10:00:00 AM | 8/1/2017 1:00:00 PM 7442 |8/3/2017 9:00:00 AM | 8/3/2017 12:00:00 PM 7442 |8/1/2017 4:00:00 PM | 8/1/2017 7:00:00 PM 7442 |8/2/2017 4:00:00 PM | 8/2/2017 7:00:00 PM 7442 |8/15/2017 4:00:00 PM | 8/15/2017 7:00:00 PM 7442 |8/9/2017 4:00:00 PM | 8/9/2017 7:00:00 PM 7442 |8/1/2017 10:00:00 AM | 8/1/2017 1:00:00 PM 9330 |8/9/2017 4:00:00 PM | 8/9/2017 7:00:00 PM 9330 |8/1/2017 10:00:00 AM | 8/1/2017 1:00:00 PM 的文件:

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));

无论如何,我建议依赖注入。