18287452845 发表于 2020-3-31 22:46

问一个vue数据绑定问题

现在有一个问题,在一个页面,初始只有一个复选框组,通过单击事件可以创建新的复选框组,我打算在单击事件的时候给他添加绑定元素就是下面这样


```

      for (let j = 0, len = this.res.length; j < len; j++) {
      if (this.res.type == 'qqqq') {

          this.checkList.push([])
      }

      }
```

```

      <div rows="10" v-for="( value, index) in res">
      <div v-if="value.type === 'qqqq'&&checkList.length!=undefined">
          {{ value.question_name }}{{checkList.length}}
          <el-checkbox-group v-model="checkList">
            <el-checkbox label="A"></el-checkbox>
            <el-checkbox label="B"></el-checkbox>
            <el-checkbox label="C"></el-checkbox>
            <el-checkbox label="D"></el-checkbox>
          </el-checkbox-group>
      </div>
      </div>
```
可是在渲染的时候数组是成功追加了,渲染不成功,提示length未定义,可是我也加了v-if判断length未定义了.还是一样的原因,求大佬解答

puz_zle 发表于 2020-3-31 22:54

给 `checkList` 初始值 一个 `[]`

不过这种问题吧

你应该去sf问

18287452845 发表于 2020-3-31 22:57

puz_zle 发表于 2020-3-31 22:54
给 `checkList` 初始值 一个 `[]`

不过这种问题吧


给了初始值,后来添加上的还是渲染不成功。有没有什么方法可以等js执行完了再进行渲染的呀

冰镇苏打水 发表于 2020-3-31 23:16

初始化一个 checkList = [] 要不就 checkList && checkList.length

riguang2b 发表于 2020-4-1 00:17

完全不知道你的代码要干嘛 checkList引用res的index?
click事件加一个复选框就v-for绑个数组,click一下数组push一个
提示length未定义就说明渲染时不是数组,加判断了渲染报错估计取了res的index造成数组越界

ReLoading 发表于 2020-4-1 00:51

你这里 for的是 res
checkList 还没定义,当然是没有咯

18287452845 发表于 2020-4-1 05:32

ReLoading 发表于 2020-4-1 00:51
你这里 for的是 res
checkList 还没定义,当然是没有咯

res只是用来设置复选框组的数量。check List是已经定义了的现在的问题在于我想把绑定的数据放到checklist这个二维数组里面。因为复选框需要绑定数组。做的动作就是动态增加了数组元素。可是增加上了。vue在渲染的时候会提示无法读取length错误

打工仔-知恩 发表于 2020-4-1 08:07

data中的res我们不知道数组里面的东西是什么   还有就是v-for之后必须绑定:key   你也没绑定

18287452845 发表于 2020-4-1 16:49

解决了是索引问题 怎么结贴呀
页: [1]
查看完整版本: 问一个vue数据绑定问题