Преобразуйте динамические значения с помощью angular 5

У меня есть файл перевода json на английский и один на немецкий.

Они выглядят так

en.json

"COLORS": {
        "BLUE": "Blue",
        "RED": "Red",
        "GREEN": "Green"
}

то же самое и с немецким.

У меня есть объект человека, и у него есть массив цветов []. У человека могли быть синие и красные цвета. Тогда это выглядело бы так:

person.colors[0] = "BLUE";
person.colors[1] = "RED";

Как видите, я сохранил в массиве ключи переводов, а не значения.

Теперь я перебираю цвета человека, например:

<div *ngFor = "let color of person.colors">
    <p>{{'COLORS.color' | translate}}</p>
</div>

Но я ничего не получаю. В чем может быть проблема?

Я уже смотрел этот пост angular-translate: преобразовать динамическое значение, но мне это не помогло.

Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
1
0
1 377
1

Ответы 1

Попробуйте так

<div *ngFor = "let color of person.colors">
    <p>{{'COLORS.'+color | translate}}</p>
</div>

Я получаю ключ на выходе, например СИНИЙ или красный .. но мне нужны значения

BlueCat 17.07.2018 10:18

Да, я знаю. Он будет работать, если вы правильно настроили перевод, потому что я уже пробовал синтаксис выше

jack 17.07.2018 10:25

Я тоже использую это, я тестировал его с другими переводами, и он работает. Я думаю, что это тоже должно сработать для этого сценария, но я не знаю как. Я должен перевести ключ, а затем указать его значение в качестве вывода.

BlueCat 17.07.2018 10:28

В вашем коде TranslateModule.forRoot () в модуле приложения или общем модуле, он должен быть в модуле приложения

jack 17.07.2018 10:35

TranslateModule.forRoot () в модуле приложения и использовать модуль Translate в общем модуле без forRoot (). Это должно быть сделано таким образом (stackblitz.com/edit/…)

jack 17.07.2018 10:37

Я посмотрел на него, но мне это ничуть не помогло: /

BlueCat 17.07.2018 11:18

вы сделаете демо-плункер или stackblitz?

jack 17.07.2018 11:43

Другие вопросы по теме