angular - 如何使用运行时数据在 Angular 2 中注册提供者?

标签 angular

在 Beta 中我可以这样做:

export class AppBootstrapper {
  constructor(mySettings: AppSettings) {
    bootstrap(App, 
      [
        provide(AppSettings, {
          useFactory: () => mySettings
        })
      ]
    }
  }
}

其中“mySettings”是来自服务器的运行时数据。

我如何在最新的 RC 中执行此操作?

export class AppBootstrapper {
  constructor(mySettings: AppSettings) {
    platform.bootstrapModule(AppModule);
  }
}

我可以将它放入 Bootstrap,但不能放入 app.module.ts

providers: [
  { provide: AppSettings, useFactory: => new AppSettings(??) }
]

,

最佳答案

您可以尝试以下方法:

export class AppBootstrapper {
  constructor(mySettings: AppSettings) {
    browserDynamicPlatform({ provide: AppSettings, useFactory: () => mySettings })
       .bootstrapModule(AppModule);
  }
}

或者只是在你的 app.module.ts 文件中添加一些方法 main ,它将返回你的 AppModule 并像这样调用这个方法

platform.bootstrapModule(main(settings));

另见:

关于angular - 如何使用运行时数据在 Angular 2 中注册提供者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39821314/

相关文章:

angular - getter 和 setter 中 Observable 的 Typescript 返回类型

Angular 4 patchValue 基于 FormArray 中的索引

arrays - TS | array[n] 返回未定义,数组返回正确

typescript - "TypeError: Cannot read property ' then' of undefined

angular - 如何在 NX 工作区中运行特定的 Angular 规范测试文件?

angular - 为什么 .map 运算符在没有 .pipe 的情况下无法工作(Angular + Angularfire2/auth)?

angular - 没有 BarcodeScanner 的提供者

javascript - 通过外部 api 从重定向 url 存储访问 token

angular - 服务 Angular spa 离开根

ios - <输入类型 ="file"选择文件后重新启动 Ionic 应用程序