【问题标题】:How to dynamically set LocationStrategy class如何动态设置 LocationStrategy 类
【发布时间】:2017-03-12 07:37:42
【问题描述】:

如何在使用提前编译器编译的 Angular 2 应用程序中动态配置 AppModuleNgFactory?

LocationStrategy 提供程序类应根据window.isCordova 环境变量设置

{
    provide: LocationStrategy,
    useClass: window.isCordova ? HashLocationStrategy : PathLocationStrategy
}

如果应用程序没有使用 AOT 编译,它可以正常工作。但是当它使用 AOT 编译时,LocationStrategy provider 总是设置为HashLocationStrategy

知道如何做到这一点吗?

【问题讨论】:

    标签: angular angular2-aot


    【解决方案1】:

    你应该这样做:

    { provide: LocationStrategy, useFactory: locationStrategyFactory, deps: [PlatformLocation] },
    

    locationStrategyFactory 函数应如下所示:

    const locationStrategyFactory = (_platformLocation: PlatformLocation) => {
      return (isUseHash ?  new HashLocationStrategy(_platformLocation) : new PathLocationStrategy(_platformLocation) );
    };
    

    【讨论】:

      猜你喜欢
      • 2019-12-11
      • 1970-01-01
      • 2010-09-05
      • 2013-05-15
      • 2023-03-16
      • 2018-12-03
      • 1970-01-01
      • 2017-10-12
      相关资源
      最近更新 更多