相关文章推荐
果断的甜瓜  ·  Retrofit2.0起步篇 - ...·  8 月前    · 
文武双全的荒野  ·  node js base64 to ...·  1 年前    · 
眉毛粗的红茶  ·  QT ...·  2 年前    · 
悲伤的手电筒  ·  clojure - ...·  2 年前    · 
精彩文章免费看

vue中当数据为空时的处理

背景

后台返回的数据并不是固定的,可能为一个对象或者为空,可能是一个数组或者为空。

要展示的文字信息存在于对象的一个属性中,对象可能为空,属性可能为空,也可能为空字符串,这些情况都显示 暂无

<span>{{propertyShow}}</span>
data () {
    return {
        // 默认值
        propertyShow: '暂无'

当获取到后台的数据后,如果不为空或空字符串,就赋值。

if (res.data.obj !== null) {
    if (res.data.obj.property !== null) {
        if (res.data.obj.property.trim() !== '') {
            this.propertyShow  = res.data.obj.property

要展示的图片在数组中,数组可能为空,也可能为空数组,默认展示第一张图片。

将值设置为数组类型

this.list = res.data.list || []

设置默认图片时只需判断数组长度

<img v-if="list.length>0" :src="list[0].url" alt="图片">
<img v-else src="../default.png" alt="默认图">

不设置值类型,直接赋值

this.list = res.data.list

设置默认图片时需要判断是否为空,而且必须先判断空,否则length会报错

<img v-if="list===null || list.length===0" src="../default.png" alt="默认图">
<img v-else :src="list[0].url" alt="图片">
<img v-if="list===null" src="../default.png" alt="默认图">
<img v-else-if="list.length>0" :src="list[0].url" alt="图片">
<img v-else src="../default.png" alt="默认图">
<img v-if="list===null" src="../default.png" alt="默认图">
<img v-else-if="list.length===0" src="../default.png" alt="默认图">
<img v-else :src="list[0].url" alt="图片">
最后编辑于:2019-07-18 22:59