У меня есть текст, исходящий из jSON, как показано ниже. Я хотел бы заменить [валюта: а] на доллар США и [валюта:b] на 50М и так далее. Обратите внимание, что это должно быть динамическим, я имею в виду, что заполнители могут увеличиваться. Может ли кто-нибудь помочь, как это сделать в Angular 6.
{
"Text":"Not to exceed [currency:a][amount:b] in respect of General Aviation liability primary lines </li><li>not to exceed [currency:c][amount:d] in respect of Airline Liability,[currency:e][amount:f]"
"placeHolderValues": {
"a": " 'USD'",
"b": " '50M'",
"c": " 'GBP'",
"d": " '100M'",
"e": " 'HKD'",
"f": " '150M'",
}
}





Вероятно, вам следует использовать pipe, который принимает переменные и возвращает всю строку, например:
transform(currencies: string[], amounts: number[]): string {
return `not to exceed ${currencies[0]}${amounts[0]} in respect of Airline Liability,${currencies[1]}${amounts[1]}`;
}
Вы должны иметь возможность сделать его общим, чтобы он принимал больше значений и строк для замены, просто добавьте больше параметров.
Затем в вашем шаблоне вы можете использовать канал, например:
<input type = "text" [placeholder] = "'base string' | addCurrencies" />
Спасибо за ответ. Мой вывод должен быть таким, как показано ниже: не превышать 50 миллионов долларов США в отношении основных линий ответственности авиации общего назначения </li><li>не превышать 100 миллионов фунтов стерлингов в отношении ответственности авиакомпаний, 150 миллионов гонконгских долларов. Не могли бы вы сообщить мне, как мы можем заменить их во время рендеринга.
Сделайте геттер и привяжите его к [placeholder]. Это сработает.
get text() {
const currency = this.currency.placeHolderValues
return `Not to exceed ${currency.a}${currency.b} in respect of General Aviation liability primary lines not to exceed ${currency.c}${currency.d} in respect of Airline Liability,${currency.e}${currency.f}`
}
<input [placeholder] = "text" style = "width: 100%">
стекблиц: https://stackblitz.com/edit/angular-x8u8bm
Спасибо за ответ. Мой вывод должен быть таким, как показано ниже: не превышать 50 миллионов долларов США в отношении основных линий ответственности авиации общего назначения </li><li>не превышать 100 миллионов фунтов стерлингов в отношении ответственности авиакомпаний, 150 миллионов гонконгских долларов. Не могли бы вы сообщить мне, как мы можем заменить их во время рендеринга.
Это можно сделать с помощью геттера. Я обновил стекблиц.
Привет, я не нашел никаких обновлений в stackblitz. Не могли бы вы поделиться последними. Как уже упоминалось, текст должен быть отображен с замененными значениями. Спасибо за помощь
Забыл сохранить. Обновлено снова.
спасибо за обновление, теперь я это вижу. Здесь, в геттере, нам нужно написать всю строку. Для меня текст будет динамичным и никогда не знаешь, какой текст придет. SO Мне нужна функция, которая принимает Text и placeHolderValues в качестве входных данных и возвращает строку с правильными значениями. Спасибо за помощь.
любая помощь на этом одном pls.
Спасибо за ответ. это не Вход. Мне нужно отобразить это в пользовательском интерфейсе. окончательный результат должен быть похож