У меня есть страница с элементом управления b-form-select из Bootstrap Vue.Когда я изменяю значение этого элемента управления, я хочу выполнить функцию, которая может отменить это событие, а не изменить значение.
Чтобы сделать вещи более сложными, мой выбор находится в дочернем компоненте, а функция IВыполнение находится в родительском.
Дочерний компонент
public values: any[] = [
{ name: 'default'},
{ name: 'forbidden'},
{ name: 'other option' },
]
<b-form-select :value="property" @change="$emit('onPropertyChange', arguments[0])">
<option v-for="(val, key) in values" :value="val" :key="key">{{val.Name}}</option>
</b-form-select>
Родительский компонент:
this.property = { name: 'default' }
public onPropertyChange(newValue) {
if (newValue.name === 'forbidden') {
// Not changing this.property
} else {
// Changing it
this.property = newValue
}
}
<child :property="property" @onPropertyChange="onPropertyChange"></child>
Когда я выбираю «запрещено» в выборе.Я вижу, что поле выбора изменилось на это значение, но свойство в дочернем элементе, а также свойство в родительском элементе все еще имеют старое значение, которое я и хочу.Как я могу также выбрать, чтобы иметь старое значение?
Bootstrap Vue, кажется, не имеет модификатора предотвращения в событии изменения.Я также пытался использовать нативное событие, но с той же проблемой.
Я что-то не так делаю?