使用情况,vue中返回的数据循环遍历如果用到v-if时不能直接赋值true 或者false,要true 或者false push到数组里面,隐藏或显示时用 splice方法。
以下是详情
1. 第一步先在data中定义数组
data () { return { passSaveShow: [], // 通行组保存和取消的显示隐藏 passEditShow: [], // 通行组编辑的显示隐藏 checkedUnLink: [], // 取消关联是否选中 valDate: [], // 有效期显示 pickDateShow: [], // 日期插件隐藏 linkedValue: [], showImg: false, // 是否放大图片 imgSrc: '', // 图片的路径 checkName: '', // 输入姓名关键字 checked: false, checkLists: [], checkPage: { page: 1, count: 2, total: 0 } }; }
2.页面中使用
<td> <i v-if="passEditShow[index]" @click="editValDate(index)" title="编辑" class="el-icon-edit-outline"></i> <div class="passSave" v-if="passSaveShow[index]"> <i @click="passSaveDate(index)" title="保存提交" class="el-icon-circle-check"></i> <i @click="passCancel(index)" title="取消" class="el-icon-circle-close"></i> </div> </td>
3.重要的一步,push到数组中
// 初始化加载数据 mounted () { let groupId = this.$props.perGroupInfo.id; let page = 1; let count = this.checkPage.count; let expired = 0; console.log(groupId); let url = `api/groupemp/linked?page=${page}&count=${count}&groupId=${groupId}&expired=${expired}`; this.$https.get(url).then(res => { console.log('查看初始化数据'); console.log(res); console.log(res.data.data); console.log('查看初始化数据尾'); this.checkLists = res.data.data; this.checkPage.total = res.data.Total; this.checkLists.forEach((item, index) => { this.valDate.push(true); this.pickDateShow.push(false); this.passSaveShow.push(false); this.passEditShow.push(true); }); }).catch(err => { console.log('查看初始化数据报错'); console.log(err); }); },
4.更改按钮的显示隐藏,使用splice ,不能直接更改
// 修改有效期 editValDate (val) { this.passEditShow.splice(val, 1, false); this.passSaveShow.splice(val, 1, true); this.valDate.splice(val, 1, false); this.pickDateShow.splice(val, 1, true); // console.log(this.valDate[val]); // console.log(this.pickDateShow[val]); },
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!