Vue замена текста на компонент
Есть строка text : string = 'Завтра в городе #msk будет хорошая похода' Как в vue заменить некоторые слова в компонент?
Сейчас:
<p>{{text}}</p>
<p>Завтра в городе #msk будет хорошая похода</p>
Что должно в итоге получится:
<p>{{text}}</p>
<p>Завтра в городе <tag :tagid='#msk'>#msk</tag> будет хорошая похода</p>
Ответы (1 шт):
Автор решения: Swartex
→ Ссылка
по хорошему вам надо еще помимо текста передавать динамический параметр.
Посему будет так:
<p>{{text}}</p>
<p>Завтра в городе <tag :tagid='msk'>{{msk}}</tag> будет хорошая похода</p>
И vue не будет рендерить такую запись:
<tag tagid='#msk'>#msk</tag>
Он выведет ее как обычний html элемент
UPDATE Вам нужно использовать фильтры
Вот здесь рабочий вариант https://codesandbox.io/s/twilight-water-ogfg3
воздаем фильтр в директиве:
filters: {
replaceTags(value, tag, replasor) {
let re = new RegExp(tag);
return value.replace(
re,
`<tag style="color:red;" tagid='${replasor}'>${replasor}</tag>`
);
}
}
Который принимает 3 параметра, по названию думаю поймёте