我正在使用Ajax来填充多个对象的数据属性。因此,我想要绑定的属性在绑定时不存在。
例如:
<template>
<my-list v-bind:dataid="myobject ? myobject.data_id : 0"></my-list>
</template>
<script>
export default {
data () {
return {
myobject: {}
}
}
</script>
在Vue docs https://012.vuejs.org/guide/best-practices.html中,它提到初始化数据而不是使用空对象。
但是我使用了多个Ajax创建的对象,其中包含数十个参数和子参数。要初始化所有对象上的每个子参数,如下所示:
myobject: { subp1: [], subp2: [] ...}
其中myobject可以是包含对象数组的对象,也可以是包含对象子数组的对象数组。
将需要相当多的工作。当绑定到“尚未存在的”时,是否有更好的替代方案?对象
答案 0 :(得分:0)
首先,一个空数组仍然是“真实的”,所以你在这里检查
v-bind:dataid="myobject ? myobject.data_id : 0"
始终返回true。您应该检查myobject.length
。您的代码现在应该可以使用了。
此外,您实际上不需要为数组定义虚拟对象。无论何时改变数组,Vue都会检测到。