不推荐使用AppInjector get,使用Type <t>或InjectionToken <t>

时间:2018-04-13 14:11:55

标签: angular angular5 tslint

我正试图摆脱这个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)以消除警告?任何帮助将不胜感激,谢谢!

0 个答案:

没有答案