В моем шаблоне компонента я использую компонент AutoDeltaSettings, который я хочу показать, только если showAuto
атрибут данных компонента имеет значение true.
<auto-delta-settings v-if="showAuto"> </auto-delta-settings>
Вот атрибут данных showAuto
data () {
return {
stepWidth: STEP_WIDTH,
headerHeight: HEADER_HEIGHT,
paddingTop: PADDING_TOP,
paddingBottom: PADDING_BOTTOM,
footerHeight: FOOTER_HEIGHT,
showAuto: false
}
}
Я зарегистрировал события на созданном хуке
created () {
EventBus.$on('protocol-changed', this.protocolChanged)
EventBus.$on('show-advanced-settings', this.showAdvancedSettings)
}
Когда генерируется событие show-advanced-settings, я вызываю метод showAdvancedSettings компонента
methods: {
showAdvancedSettings (toShow) {
console.log("To Show - Before"+ this.showAuto)
this.showAuto = toShow
console.log("To Show - After"+ this.showAuto)
}
}
Я отправляю событие из другого компонента одним нажатием кнопки
showAdvancedSettingsModal () {
console.log('Inside advanced settings opener - Before '+ this.showAdvancedSettings)
this.showAdvancedSettings = true
console.log('Inside advanced settings opener - After '+ this.showAdvancedSettings)
EventBus.$emit('show-advanced-settings', this.showAdvancedSettings)
},
Но это работает только при первом нажатии кнопки, в этом случае появляется AutoDeltaSettings
компонент (который в основноммодальный), когда я закрываю модальный и снова нажимаю на кнопку, чтобы отобразить компонент AutoDeltaSettings
, он не работает.
Я прочитал этот пост Условный v-if работает только дляпервый раз?