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;  
    }  
    // 其他共同操作  
  }  
}  

  

posted @ 2018-05-02 16:58  小历史-of-snow  阅读(19459)  评论(0编辑  收藏  举报