首页 > 解决方案 > @change 方法正在获取选择框的先前选定值

问题描述

我有一个由 v-model 绑定的国家 ID。每当我更改选择框时,我都会调用一个事件@change,该事件会调用一个方法country_change ,该方法将获取属于该特定国家/地区 ID 的州的值。问题是我正在获取的州属于先前选择的国家/地区ID,而不是当前选择的国家/地区ID。好像 @change 方法在更改国家 ID 的 v-model 绑定值之前正在运行。


     <select class="custom-select form-control" id="country" name="country" v-model="country" @click="country_change">
        <option value="">Select Country</option>
        @foreach($countries as $country)
        {
          <option value="{{ $country->id }}" >{{ $country->name }}</option>
        }
        @endforeach
      </select>

  data: function () {
    return {
      country: '101',
      states: null
    }
  },

  methods: {
    country_change: function () {
      axios
      .get('/states/'+this.country)
      .then(res => this.states = res.data )
      .catch(err => console.error(err));
    }
  }

标签: javascriptvue.jsvue-component

解决方案


我发现问题出在 vue.js 开发工具上。它显示了与先前选择框的选择值相对应的结果。


推荐阅读