【发布时间】:2020-03-19 08:21:35
【问题描述】:
我是 vuejs 的新手。我正在尝试根据某些条件在表格上显示复选框。将 bootstrapvue lib 用于复选框。下面是我的代码,
模板:
<tr v-for="(item, index) in data" :key="index">
<slot :row="item" >
<td v-for="(column, index) in columns" :key="index" v-if="checkForCol(item, column)">
<b-form-checkbox v-model="checked" name="check-button" disabled="disabled" switch></b-form-checkbox>
</td>
<td :key="index" v-else>
<span v-if="hasValue(item, column)">
{{itemValue(item, column)}}
</span>
</td>
</slot>
</tr>
脚本:
data() {
return {
checked : false
}
},
methods: {
hasValue(item, column) {
return item[column] !== "undefined"
},
checkForCol(item, column) {
if(column === "statusInfo") {
this.checked = item[column] === "ONLINE" ? true : false
return true
}
},
itemValue(item, column) {
return item[column]
}
}
列数据:
[{
"label": "label 1",
"id": "5f123456",
"statusInfo": "OFFLINE",
},
{
"label": "label 2",
"id": "5f1236786",
"statusInfo": "ONLINE",
}]
对于所有“在线”值都没有出现任何错误。但如果任何行有“离线”,那么就会出现无限循环错误。我已经理解这是由于 this.checked 的突变问题造成的问题。但是没有解决方案来解决它。任何帮助都会有所帮助。提前致谢。
【问题讨论】:
-
你能以列数据为例吗?
-
用数据更新了问题
标签: vue.js vuejs2 bootstrap-vue v-for