#javascript #angular #typescript #angular12 #angular13
Вопрос:
У меня ниже приведен код для динамической загрузки локализаций
declare var System; let angularLocale = convertAbpLocaleToAngularLocale(abp.localization.currentLanguage.name); System.import(`@angular/common/locales/${angularLocale}.js`) .then(module =gt; { registerLocaleData(module.default); NgxBootstrapDatePickerConfigService.registerNgxBootstrapDatePickerLocales().then(_ =gt; { resolve(true); abp.ui.clearBusy(); }); }, reject);
Если я не использую систему, команда сборки создает исключение в виде
Module not found: Error: Package path ./locales is not exported from package ....node_modules@angularcommon (see exports field in .....node_modules@angularcommonpackage.json)
Если я использую систему, я получаю исключение в консоли браузера, как
core.mjs:6495 ERROR Error: Uncaught (in promise): ReferenceError: System is not defined ReferenceError: System is not defined at registerLocales (root.module.ts:193) at root.module.ts:64 at ZoneDelegate.invoke (zone.js:400) at Object.onInvoke (core.mjs:25877) at ZoneDelegate.invoke (zone.js:399) at Zone.run (zone.js:160) at zone.js:1318 at ZoneDelegate.invokeTask (zone.js:434) at Object.onInvokeTask (core.mjs:25864) at ZoneDelegate.invokeTask (zone.js:433) at resolvePromise (zone.js:1255) at zone.js:1325 at ZoneDelegate.invokeTask (zone.js:434) at Object.onInvokeTask (core.mjs:25864) at ZoneDelegate.invokeTask (zone.js:433) at Zone.runTask (zone.js:205) at drainMicroTaskQueue (zone.js:620)
Комментарии:
1. Вы объявили систему как переменную, она должна быть импортирована как импорт { System } из «системы»;
Ответ №1:
У меня была та же проблема с «Модулем не найден». В приложении мы используем i18n. Теперь я получаю страну из i18n, а затем устанавливаю локаль для трубы, ведьма хранит эту информацию. Так что мне больше не нужна динамическая модульная загрузка. Может быть, это вам поможет?