在开发中发现使用el-time-select时,绑定的值会沿用上一次打开的弹框,效果如下:
点击修改后,再点新增,最早打卡时间无法重置
原因:element复用了上次使用的input,input也是就地复用,这种临时DOM状态也仍旧保存了下来,从而使得input中的数据还是原先的数据
解决办法:在el-time-select中加一个v-if,让其跟随弹框一起显隐即可
<el-form-item label="最早打卡时间" prop="earlyTime">
<el-time-select :readonly="form.id != null" v-if="open"
v-model="form.earlyTime"
:picker-options="{
start: '00:00',
step: '00:01',
end: '23:59'
}"
placeholder="选择时间" @change="handleChangeLate">
</el-time-select>
</el-form-item>
open的值同dialog的
<el-dialog :title="title" :visible.sync="open" width="450px" append-to-body>
...
</el-dialog>