代码之家  ›  专栏  ›  技术社区  ›  Hacker

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

  •  1
  • Hacker  · 技术社区  · 6 年前

    我只想在浏览器是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 回复  |  直到 6 年前
    推荐文章