因此,不久前,我对该主题的搜索又返回了各种GitHub问题跟踪讨论。
本质上,我具有以下Bootstrap Select输入:
<b-form-text id="countrySelectionHelp" class="text-white my-1">Country: <span class="text-danger">*</span></b-form-text>
<b-form-select id="countrySelection" v-on:change="countryCountyConfiguration" v-model="selectedCountry" size="sm" aria-describedby="countrySelectionHelp" required>
<option :value="null">Please select an option...</option>
<option v-for="country in countrySelections" :value="country.value" :key="country.value">{{ country.name }}</option>
</b-form-select>
首先,请原谅v-和:绑定(bind)语法的混合使用。其次,on-change绑定(bind)正在触发countryCountyConfiguration函数,为了简化调试,我将其剥离为最简单的形式:
...
},
countryCountyConfiguration() {
console.log(this.selectedCountry);
},
...
实际上,最好的办法是描述这个问题,即
v-on:change="countryCountyConfiguration"
总是比v-model="selectedCountry"
落后一步……总是显示以前的v模型绑定(bind)。但是,我确实需要对国家/地区进行反馈,以便不断变化-这样,如果选择了X国家,我将提供动态的县和/或州选择。我想知道如何将
v-on:change="countryCountyConfiguration"
和v-model="selectedCountry"
结合使用? 最佳答案
理想情况下,这不应该发生。该组件似乎有问题。发生这种情况是因为change
事件在负责v-model
的事件之前触发。默认情况下,v-model
使用:value
和v-on:input
作为值和事件对。
对于您的情况,应该采用显式单向数据绑定(bind),并避免将v-model
用作:
<b-form-select v-on:change="countryCountyConfiguration($event)" :value="selectedCountry">
<!-- Some other code -->
</b-form-select>
您的
countryCountyConfiguration
将为:countryCountyConfiguration(newSelectedCountry) {
// THIS IS IMPORTANT
this.selectedCountry = newSelectedCountry;
// DO REST OF THE STUFF HERE
// ...
}