不存在的对象的VueJS数据初始化

时间:2017-04-17 03:51:56

标签: javascript ajax vue.js vuejs2

我正在使用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可以是包含对象数组的对象,也可以是包含对象子数组的对象数组。

将需要相当多的工作。当绑定到“尚未存在的”时,是否有更好的替代方案?对象

1 个答案:

答案 0 :(得分:0)

首先,一个空数组仍然是“真实的”,所以你在这里检查

v-bind:dataid="myobject ? myobject.data_id : 0"

始终返回true。您应该检查myobject.length。您的代码现在应该可以使用了。

此外,您实际上不需要为数组定义虚拟对象。无论何时改变数组,Vue都会检测到。

https://vuejs.org/v2/guide/list.html#Array-Change-Detection