Vue.js v-if работает только в первый раз - PullRequest
0 голосов
/ 19 мая 2018

В моем шаблоне компонента я использую компонент 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 работает только дляпервый раз?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...