export function getApiKey(config: WebConfigService): Promise<boolean> {
return new Promise((resolve, reject) => {
config.getConfigLoaded().subscribe(key => {
if (key) {
apikey = config.getString('properties', 'apikey');
resolve(true);
} else {
reject(new Error('API Key not found'));
}
});
});
我想解决密钥问题,然后调用forroot,这样
由于 forroot 未定义,此代码需要一些工作
应该有正确的钥匙`
原来如此,看来是有什么误会。在 Angular 中,不建议直接从静态方法访问实例成员,因为静态方法与类本身相关联,而不是与类的实例相关联。但是,您仍然可以通过采用不同的方法来实现您的目标。
imports: [
// FwBuilderModule.forRoot(apikey), this imports should be passed correct key
static forRoot(apiKey: string):ModuleWithProviders<FwBuilderModule>{
@NgModule({
imports: [
CommonModule,
CerillionBuilderBridgeComponent,
BuilderModule.forRoot(apiKey)
我建议您通过应用程序初始化程序在某些配置服务中保存值,然后使用工厂构建 api 密钥,这取决于配置服务
// config.service
export class ConfigService {
apiKey: string;
async load() {
const key = // get a key in an async way
this.apiKey = key;
}
}
// module
imports: [BuilderModule],
providers: [{
provide: BUILDER_API_KEY,
useFactory: () => inject(ConfigService).apiKey,
}]
// app initializer
providers: [{
provide: APP_INITIALIZER,
useFactory: () => {const service = inject(ConfigService); return () => service.load()},
multi: true
}]