我正试图摆脱这个tslint警告:
警告:不推荐使用get:从v4.0.0开始使用Type或 InjectionToken
我的代码设置方式如下:
app.injector.ts
import { Injector } from '@angular/core';
export let AppInjector: Injector;
export function setAppInjector(injector: Injector) {
if (AppInjector) {
// Should not happen
console.error('Error: AppInjector was already set');
}
else {
AppInjector = injector;
}
}
app.module.ts
...
import { setAppInjector } from './app-injector';
...
export class AppModule {
constructor(private injector: Injector) {
setAppInjector(injector);
}
}
somecomponent.component.ts
...
import { Router } from '@angular/router';
import { AppInjector } from '../../app-injector';
...
export class SomeComponent {
private router = AppInjector.get(Router);
constructor() { /* code here */ }
}
我无法在private router: Router
的构造函数中执行somecomponent.component.ts
,这就是为什么我这样做(这是要求,我无法改变它)。
所以我的主要问题是如何更改行private router = AppInjector.get(Router)
以消除警告?任何帮助将不胜感激,谢谢!