vue+elementui(对话框中form表单的reset)
一般在新增和编辑的时候用的都是同一个对话框和form表单,而在先点击编辑的时候form表单的resetfileds函数就会失效解决原理:实际上结构是(通过vue类比)data里面有一个form表单的初始值,methods里面定义了一个resetfileds的函数resetfileds函数的作用:记录在mounted生命周期执行之前最后一次form表单中对象的值,并且重新开启效验在mounted周期
一般在新增和编辑的时候用的都是同一个对话框和form表单,而在先点击编辑的时候form表单的resetfileds函数就会失效
解决原理:实际上结构是(通过vue类比)
data里面有一个form表单的初始值,
methods里面定义了一个resetfileds的函数
resetfileds函数的作用:记录在mounted生命周期执行之前最后一次form表单中对象的值,并且重新开启效验
在mounted周期中resetfileds函数会自动执行一次
实际运行:当第一次点开dialog的时候,form对象第一次被创建,dom加载,即自动运行一次resetfileds函数(此时已经记录了初始值)
在后面当再一次调用resetfileds函数的时候就会把函数中记录的对象值赋给form表单,所以如果是先点击编辑的情况下,form表单在点击新增时不会清空数据
解决办法:1:可以再新增时手动清除数据(缺点:此时resetfileds函数中记录的值并没有改变,还是当时第一次点击编辑的时候赋的值,但不影响使用)
2:第一次加载dom时如果要修改data中定义的form对象值,那么要将修改操作放在form表单dom元素加载完以后,即mounted生命周期之后(比较推荐的方式)
代码:第一次加载dom时如果要修改data中定义的form对象值,放在$nextTick中执行(即等待resetfileds函数执行以后再去把编辑或者新增的值赋值给form表单,这样子,resetfileds函数记录的就是form表单中data定义的初始化值)
更多推荐
所有评论(0)