如何呈现字符串中包含的换行符?

时间:2019-03-06 20:11:10

标签: string vue.js

字符串中包含的换行符仅显示为<br>,而不是实际的换行符。

我试图使用反引号无济于事。有没有一种简单的方法可以在页面上呈现换行符,而理想情况下又不会对我的代码进行太深的修改?

标记:

<div
  v-for="item in faqItems"
  :key="item.id"
>
  <span class="faq-item-title">
    {{ item.title }}
  </span>
  <span class="faq-item-details">
    {{ item.text }}
  </span>
  <svg-icon name="chevron-down"></svg-icon>
</div>

JS:

faqItems: [
  {
    title: 'Nullam vehicula arcu ipsum',
    text: 'Donec sit amet nisl finibus, pharetra orci ut, aliquet diam.<br><br>Nunc cursus libero luctus nunc vestibulum placerat. Mauris vel dolor sit amet orci rutrum sollicitudin.<br><br>Donec neque leo, porttitor a diam et, sodales volutpat libero.'
  },
  {
    title: 'In iaculis egestas nisl',
    text: 'Etiam a elementum diam. Praesent lobortis pulvinar lacus, sit amet vehicula tortor.'
  }

2 个答案:

答案 0 :(得分:1)

一种方法是将<br>替换为文本换行符(\n),并继续将其用作布局中的文本:

{
  title: 'Nullam vehicula arcu ipsum',
  text: 'Donec sit amet nisl finibus, pharetra orci ut, aliquet diam.\n\nNunc cursus libero luctus nunc vestibulum placerat. Mauris vel dolor sit amet orci rutrum sollicitudin.\n\nDonec neque leo, porttitor a diam et, sodales volutpat libero.'
}

正如丹尼尔指出的那样,文字换行符在<span>中不起作用。除非将其映射到.innerText => Example<span>属性,否则它会将所有文字中断转换为<br>并将文本分成不同的文本节点)。


另一种方法是为此使用专用的Vue指令,该指令将字符串解析为html:v-html

<span class="faq-item-details" v-html="item.text" />

答案 1 :(得分:0)

使用反引号,然后添加css条目,如下所示:

b