uniapp中v-for遍历渲染html文本的问题
本帖最后由 harglo 于 2022-10-9 12:09 编辑uniapp开发微信小程序用v-for循环得到的文本(例如:<em>数据</em>),怎样实现只显示其中文本,不显示<em>标签。
我的代码:
<view class="sugg-list" :key="flag">
<view class="sugg-item" v-for="(item, i) in searchResults" :key="i" @click="gotoDetail(item.id)" >
<view class="goods-name">
<!-- <text v-if="flag" class="goods-name">{{item.highlightFields.title}}</text> -->
<!-- <rich-text :nodes="item.highlightFields.title"></rich-text> -->
{{item.highlightFields.title}}
</view>
<uni-icons type="arrowright" size="16"></uni-icons>
</view>
</view>
结果会将<em>标签原样输出:
<em>数据1</em>
<em>数据2</em>
<em>数据3</em>
...
已解决,原来是数据问题,item.highlightFields.title这个数据是数组,用{{item.highlightFields.title}}直接输出看到有正确数据以为就是文本,但却是数组,正确获取这个数据要用item.highlightFields.title,这样可以用:
<rich-text class="goods-name" :nodes="item.highlightFields.title"></rich-text>正常渲染数据里面的html标签了。
<view class="goods-name" v-html="item.highlightFields.title">
</view> wwroot1 发表于 2022-9-26 18:58
渲染成<rich-text nodes="["<em>数据1</em>"]"></rich-text>,但是显示空白了 wwroot1 发表于 2022-9-26 18:58
和直接使用rich-text标签一样 是不是你本身数据自带html标签?
你打印一下数据数组看看,是不是for后的val值里自带html标签了 Takitooru 发表于 2022-9-26 19:14
是不是你本身数据自带html标签?
你打印一下数据数组看看,是不是for后的val值里自带html标签了
遍历出来的文本数据自带em标签,就是文本数据里面的em标签在页面没有经过渲染就直接显示了,我想实现的是渲染em标签的效果(标签被渲染后不会显示在页面上) harglo 发表于 2022-9-26 19:29
遍历出来的文本数据自带em标签,就是文本数据里面的em标签在页面没有经过渲染就直接显示了,我想实现的是 ...
使用vhtml指令试试
如下
```
<view class="goods-name">
<span v-html="rawHtml">{{item.highlightFields.title}}</span>
</view>
``` 直接vhtml或者用正则把文本匹配出来再渲染 harglo 发表于 2022-9-26 19:29
遍历出来的文本数据自带em标签,就是文本数据里面的em标签在页面没有经过渲染就直接显示了,我想实现的是 ...
使用vhtml
```
<view class="goods-name">
<span v-html={{item.highlightFields.title}}></span>
</view>
```
或
加三个花边符号
```
<view class="goods-name">
{{{item.highlightFields.title}}}
</view>
``` 用 v-html 这个
页:
[1]
2