В моем приложении есть система перевода времени выполнения, которая до перехода на Angular 7 использовала HTTP-запросы для загрузки файла JSON, заполненного переводами, как показано ниже:
loadLanguage(lang: string) {
this.http.get('assets/lang/' + lang + '.json)
.toPromise()
.then((translations) => this.translations = translations; )
}
В рамках обновления до Angular 7 я решил попробовать напрямую импортировать json, а не использовать http для его получения. Я реализовал это по-новому:
async loadLanguage(lang: string) {
this.translations = await import('assets/lang/' + lang + '.json);
}
Это работает так, как я ожидал с точки зрения изменения языка, но проблема, с которой я столкнулся, заключается в том, что изменение файлов JSON после компиляции не влияет на вывод импорта.
Из пакета, созданного компиляцией, похоже, что все импортированные файлы компилируются в фрагменты, которые затем загружаются, когда я запрашиваю этот конкретный файл json. Я просто неправильно понимаю этот импорт и то, как они работают при использовании с webpack, или есть что-то очевидное, что я пропустил при рефакторинге своего решения?
Спасибо