【发布时间】:2019-04-13 04:44:56
【问题描述】:
我正在尝试将变量注入到 Angular 模块的 forRoot({[...]}) 方法中。
我以异步方式获得了这个变量,所以我尝试在 在 bootstrap Angular 之前获得它。 (来自cordova.js)
问题:
似乎 Angular 在被引导之前导入了模块(并调用了“forRoot”方法)。
有没有办法做到这一点?
谢谢!
我尝试过的一个例子:
app.module.ts
import {NgModule} from '@angular/core';
import {AgmCoreModule} from '@agm/core';
@NgModule({
imports: [
AgmCoreModule.forRoot({
apiKey: window['device'].platform, // value is 'null' instead of 'browser' or something else
libraries: ['places']
})
],
// [...]
bootstrap: [AppComponent]
})
export class AppModule {
}
src/main.ts
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app/app.module';
import { environment } from './environments/environment';
if (environment.production) {
enableProdMode();
}
document.addEventListener('deviceready', () => {
console.log(window['device'].platform); // log 'browser'
platformBrowserDynamic().bootstrapModule(AppModule)
.catch(err => console.log(err));
}, false);
/!\提示
我正在使用的库 (@agm/core) 期望字符串作为 apiKey,而不是函数...
【问题讨论】:
标签: angular cordova module phonegap