При использовании angular-translate я могу фильтровать строки так:углового перевод вложенной JSON и фильтр
<ANY>{{'TRANSLATION_ID' | translate}}</ANY>
Это очень хорошо работает со следующей плоской JSON:
{
TRANSLATION_ID: 'A value',
};
Однако, я не могу» т выяснить, как заставить его работать, используя вложенные переводы:
<ANY>{{'NAMESPACE.TRANSLATION_ID' | translate}}</ANY>
И вложенную JSON:
{
"NAMESPACE": {
"TRANSLATION_ID": "A value"
}
};
Я успешно загружая перевод с помощью $translateProvider.useStaticFilesLoader({prefix: 'i18n/locale-', suffix: '.json'});
, и я использую другие функции провайдера, такого как $translateProvider.addInterpolation('$translateMessageFormatInterpolation');
.
documentation показывает примеры вложенных переводов, используя service, но не filter.
I found a possibly related issue here. Прежде всего, с помощью кода в JSFifddle нарушает $translateProvider
функции (я как-то фиксируется за счет расширения заменяющего переменную следующим образом: $TranslateProvider = angular.extend(m, $TranslateProvider);
после введения $translateProvider
в m
и добавить pascalprecht.translate
в качестве модуля зависимости, и добавить var
декларации, чтобы иметь возможность до 'use strict'
) - так что с самого начала это не похоже на твердое решение.
С этим JSFiddle кодом, я получил директиву работать, по крайней мере, для невложенных случаев (которые хорошо и все, но не то, что нужно здесь, так что я не стал испытывать вложенные случаи), но а не фильтр (который мне нужен для вложенных и не вложенных переводов).
Мне кажется, что переводы с именами должны быть довольно сложными, и поэтому должны быть доступны для всех трех методов перевода (служба, директива и фильтр).
Метод «службы» довольно ограничен (услуга $ translate не обеспечивает двустороннюю привязку данных, что означает больше кода для прослушивания событий - see doc - и, ну, тот факт, что загрузка всего перевода строки интерфейса в диспетчер/служба приложения выглядит довольно плохой практикой: для этого нужны представления/шаблоны, если я не ошибаюсь).
Кто-нибудь нашел решение для этого, или это угловой перевод вложенных JSON работает только для службы?
Похоже, я нашел, как заставить его работать без использования дополнительного кода. Что расстраивает то, что я не знаю, как ... –