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

标签 javascript ajax vue.js vuejs2

我正在使用 Ajax 填充多个对象的数据属性。因此,我想要绑定(bind)的属性在绑定(bind)时并不存在。

例如:

<template>
  <my-list v-bind:dataid="myobject ? myobject.data_id : 0"></my-list>
</template>

<script>
export default {

  data () {
    return {
      myobject: {}
    }
  }
</script>

在 Vue 文档中 https://012.vuejs.org/guide/best-practices.html它提到初始化数据而不是使用空对象。

但是,我使用多个 Ajax 创建的对象,其中包含数十个参数和子参数。要初始化所有对象的每个子参数,如下所示:

myobject: { subp1: [], subp2: [] ...} 

其中 myobject 可以是包含对象数组的对象,或者例如包含对象子数组的对象数组。

需要做很多工作。绑定(bind)到“尚未存在”的对象时是否有更好的选择?

最佳答案

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

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

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

此外,您确实不需要为数组定义虚拟对象。每当你改变数组时,Vue 都会检测到。

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

关于javascript - VueJS 不存在对象的数据初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43444878/

相关文章:

javascript - 动态创建嵌套的 Javascript 对象

javascript - Eslint 与 VSCode 对齐包

c# - AJAX 发布数据到达 ASP.NET Core 2.1 Controller 时为空

javascript - 更改对 vue 实例的引用

css - 如何修复 Vue.js 过渡组中不同尺寸 img 的 v-align 样式?

javascript - 网站内容中超出页脚的代码

javascript - 给类选择器添加限制 "dog"

javascript - XMLHttpRequest 就绪状态停止于 1

php - 如何将ajax返回值设置为变量

vue.js - vue 路由器 $this 未定义