精彩文章免费看

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