#angularjs #angular-translate
#angularjs #angular-перевести
Вопрос:
Текущее унаследованное мной приложение использует Angular 1.x и angular-translate, в которых используется статический загрузчик файлов:
$translateProvider
.useStaticFilesLoader({
prefix: '/bundles/backend/js/global/translates/locale-cms-',
suffix: '.json'
})
Мне нужно загрузить дополнительный ресурс /api/1/translations?lang=en
(например, используя useUrlLoader
), и я хотел бы знать, возможно ли это, поскольку я не могу заставить его работать (я читаю документы, имейте в виду)… Нужно ли мне создавать пользовательский загрузчик, который ожидает результата обоих HTTP-запросов и объединяет результаты, или это можно сделать с помощью существующего оборудования?
Предпочтительно, я бы просто хотел .useUrlLoader
привязать биты и автоматически запустить два запроса, а их результаты будут объединены без того, чтобы я делал что-то еще, кроме вызова forceAsyncReload(true)
.
Я выполнил начальный POC с использованием синхронного .translations()
API, который доказал, что использование загрузчика синхронизации, за которым следует асинхронный загрузчик, работает так, как задумано; объединение результатов. Это вселило в меня надежду, но мне не очень повезло с асинхронным битом.
Комментарии:
1. Если я вас хорошо понимаю, это обещания, верно? Вы можете использовать Promise.all developer.mozilla.org/en-US/docs/Web/JavaScript/Reference /…
2. Да, я знаю, что такое обещания 🙂 (хотя это предварительно стандартный тип обещания jQuery.) Но то, что вы неявно предлагаете, — это повторно реализовать загрузчик url и статический загрузчик файлов и вызвать их за пользовательской реализацией. Я уже рассматривал это, но это довольно много работы, поэтому мне было интересно, могу ли я использовать существующий API без переделки загрузочной части при использовании двух асинхронных загрузчиков.