vue 项目中 Element 库的组件 el-select 的 change 事件触发问题
问题描述: 通常我们的需求是改变 select 的选项才会触发 change 事件,但是意料之外,页面初始化的时候也会触发 change 事件。
应用场景:例如新增/编辑页,页面有个二级联动的下拉,eg: xx 省、xx 市。省与市都有值的情况下编辑省就会清空市,但是进编辑页的时候,理想情况下,省和市都应该有值。但是由于编辑省的时候change事件中将市给清空了,而进编辑页初始化的时候又会默认调change事件,所以进编辑页的时候市的值就为空了。
期望:进入编辑页的时候省与市都有值,编辑省的时候将市清空。
解决方法:设置一个标志,根据标志决定执行那些方法。若页面初始化时不需要调用市的下拉列表,则可以将change时间单独写入一个方法,在另一个方法中进行调用。
data() { return { changeFlag: false } }, methods: { changeDwmc(val) { if (this.changeFlag) { // 修改选项时操作 this.form.city_id = ''; } else { // 进入页面时,页面初始化 this.changeFlag = true; } // 其他共同操作 } }