Я пытаюсь передать имя актива в кеш-памяти как параметр компонента модуля, который у меня есть:
- .. / assets / svg / генерируется / sprint.svg //файл существует
- , затем я хочу
require('../assets/svg/generated/sprint.svg')
, чтобы создать файл с кэшем 'sprite-345234dfg54gh6422111111.svg'
- и использовать это имя в моих компонентах
AppModule:
const SPRITE_SRC = {
raw: '../assets/generated/svg/sprite.svg',
required: require('../assets/generated/svg/sprite.svg')
};
console.log(SPRITE_SRC)
// output OK : {
// raw : '../assets/generated/svg/sprite.svg',
// required: 'sprite-345234dfg54gh6422111111.svg'
// }
@NgModule({
entryComponents: [...],
declarations: [...],
imports: [
SvgSpriteModule.forRoot(SPRITE_SRC),
]
})
export class AppModule {}
SvgSpriteModule (здесь все нормально):
export interface SvgSpriteConfig {
raw: string;
required: string;
}
export const PaCommonSvgSpriteConfig = new InjectionToken<SvgSpriteConfig>('SvgSpriteConfig');
export class SvgSpriteModule {
static forRoot(config?: SvgSpriteConfig): ModuleWithProviders {
return {
ngModule: SvgSpriteModule,
providers: [{ provide: PaCommonSvgSpriteConfig, useValue: config }]
};
}
}
Но когда я пытаюсь загрузить этот конфиг в компонент этого SvgSpriteModule, свойство required
исчезает ...:
export class SvgSpriteComponent {
constructor(@Inject(PaCommonSvgSpriteConfig) private config: SvgSpriteConfig) {
console.log('SvgSpriteComponent', config);
// output KO : {
// raw : '../assets/generated/svg/sprite.svg'
// }
}
}
Я пытался все, что мог в течение 3 часов, не понимая ... требуется функция кажется синхронным, но, возможно, это асинхронный?Как я могу это исправить?
Спасибо