吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1136|回复: 10
收起左侧

[已解决] uniapp中v-for遍历渲染html文本的问题

  [复制链接]
harglo 发表于 2022-9-26 18:53
本帖最后由 harglo 于 2022-10-9 12:09 编辑

uniapp开发微信小程序用v-for循环得到的文本(例如:<em>数据</em>),怎样实现只显示其中文本,不显示<em>标签。
我的代码:
[HTML] 纯文本查看 复制代码
<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[0],这样可以用:
[HTML] 纯文本查看 复制代码
<rich-text class="goods-name" :nodes="item.highlightFields.title[0]"></rich-text>
正常渲染数据里面的html标签了。

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

wwroot1 发表于 2022-9-26 18:58
<view class="goods-name" v-html="item.highlightFields.title">
               
            </view>
 楼主| harglo 发表于 2022-9-26 19:07

渲染成<rich-text nodes="["<em>数据1</em>"]"></rich-text>,但是显示空白了
 楼主| harglo 发表于 2022-9-26 19:09
Takitooru 发表于 2022-9-26 19:14
是不是你本身数据自带html标签?
你打印一下数据数组看看,是不是for后的val值里自带html标签了
 楼主| harglo 发表于 2022-9-26 19:29
Takitooru 发表于 2022-9-26 19:14
是不是你本身数据自带html标签?
你打印一下数据数组看看,是不是for后的val值里自带html标签了

遍历出来的文本数据自带em标签,就是文本数据里面的em标签在页面没有经过渲染就直接显示了,我想实现的是渲染em标签的效果(标签被渲染后不会显示在页面上)
Takitooru 发表于 2022-9-26 20:07
harglo 发表于 2022-9-26 19:29
遍历出来的文本数据自带em标签,就是文本数据里面的em标签在页面没有经过渲染就直接显示了,我想实现的是 ...

使用vhtml指令试试

如下

 <view class="goods-name">
           <span v-html="rawHtml">{{item.highlightFields.title}}</span>
</view>
69之皇 发表于 2022-9-26 21:13
直接vhtml或者用正则把文本匹配出来再渲染
Takitooru 发表于 2022-9-26 22:14
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>
feiyu361 发表于 2022-9-27 09:22
用 v-html 这个
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-24 10:55

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表