为什么我明明定义的是一个空集合,但是wx:if判断还是不为空?本蠢狗弄了半天了,求大家指点
页面代码:
if="{{!ingInfo}}" bindtap="add_shift">name="plus" class="add_icon add"/>
js代码
data: {
ingInfo: {}
},
ingInfo: {} 你这不是声明一个对象么,数组应该是 ingInfo: []这样吧, if条件这样试试看 wx:if="{{Object.keys(ingInfo).length === 0}}"
Object.keys({}).length
在 JavaScript 中,空对象和空数组都是 truthy 值,也就是说在布尔上下文中会被当作 true 处理。因此在 wx:if 中判断一个空对象或空数组时,会被视为非空,需要判断其长度或是否为空对象来判断其是否为空。
所以可以改为以下代码:
<view wx:if="{{Object.keys(ingInfo).length === 0}}" bindtap="add_shift"><van-icon name="plus" class="add_icon add"/></view>
其中,Object.keys(ingInfo) 返回 ingInfo 对象的所有可枚举属性的名称组成的数组,如果该数组长度为 0,则说明该对象为空。
空对象 当然不为空 。 JSON.stringify(ingInfo) == "{}" 或者 楼上的 object.keys