需求是这样子,10个按钮,每个按钮有各自的ID,点击按钮同时只出现一个弹窗,所有按钮共用这个弹窗。
打开弹窗的时候由点击按钮的ID调接口查询弹窗内容,弹窗内容都是多个checkbox,现在要在勾选checkbox的时候,各自按钮ID对应的弹窗互不干扰,且同一个ID对应的弹窗能重复打开修改里面的勾选状况并保存上次的修改状况。
然后页面最下角有一个提交按钮,用来保存所有勾选的checkbox集。
想不到什么好的做法,求大神们给点意见。
需求是这样子,10个按钮,每个按钮有各自的ID,点击按钮同时只出现一个弹窗,所有按钮共用这个弹窗。
打开弹窗的时候由点击按钮的ID调接口查询弹窗内容,弹窗内容都是多个checkbox,现在要在勾选checkbox的时候,各自按钮ID对应的弹窗互不干扰,且同一个ID对应的弹窗能重复打开修改里面的勾选状况并保存上次的修改状况。
然后页面最下角有一个提交按钮,用来保存所有勾选的checkbox集。
想不到什么好的做法,求大神们给点意见。
将checkbox与按钮绑定,每个按钮对象保存多个checkbox数据,弹窗只作为一个载体,显示时将相应按钮的数据传入就行。
let buttons = [{
id: 0,
data: [{checked: true},{checked: false}]
}, {
id: 1,
data: null
}, ...]
function onButtonClick(button) {
this.modalShow = true
this.modalData = button.data
if (!button.data) {
getData().then(data => {
this.modalData = button.data = data
})
}
}
这样吧,做一个数据缓存,那么数据怎么缓存?
1、让其与对应的Button相关联,将数据挂载到Button元素上,然后通过元素获取到对应的值。
http://nuysoft.iteye.com/blog...
欢迎:具体做法
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答4.8k 阅读✓ 已解决
4 回答4.4k 阅读✓ 已解决
4 回答1.9k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
这个弹窗是个组件,按钮上的id只是传值给这个组件而已,如果你按钮ID值是固定的,那就好办:
关键是对象存取操作:
假设id有1、2、3 ,每次你checkbox改变数据记得
localStorage.setItem
存一下就行了,新开弹窗就重新localStorage.getItem
取覆盖data()为什么
this.ids
要先有属性:vue的对象更改检测注意事项