Angular模块中的条件提供程序引发AOT错误

时间:2018-08-07 21:00:30

标签: angular angular-module angular-providers angular-aot

仅当浏览器是IE时,我才想将提供程序推送到我的提供程序列表中。

我尝试过

 const IE = detectIE();
    providers: [abcService,
      xyzService,
      (IE) ? [{provide: EVENT_MANAGER_PLUGINS,
        useClass: IeInputEventManagerService,
        deps: [DOCUMENT],
        multi: true
    }] : [],

上面的代码引发AOT错误,指示装饰器中不允许使用符号。我也尝试过下面的方式

const IE = detectIE();
const tempProviders: Array<any> = [
  abcService,
  xyzService];

if(IE) {
tempProviders.push({provide: EVENT_MANAGER_PLUGINS,
    useClass: IeInputEventManagerService,
    deps: [DOCUMENT],
    multi: true
});
}

@NgModule -> continues here

在上述情况下,提供程序永远不会被推送或永远不会处于活动状态。我该如何解决这个问题?

0 个答案:

没有答案