Vue: передача нескольких @click в компоненты - PullRequest
1 голос
/ 15 марта 2019

У меня есть шаблон представления лезвия, который я передаю в родительскую функцию следующим образом:

<Flash 
    :flash-status="flashStatus" 
    :flash-content="flashContent"
    v-if="flashStatus === true"
    @click="hideFlashMsg">

</Flash>

но теперь мне нужно передать другую функцию и попробовать это, но она не работает:

<Flash 
    :flash-status="flashStatus" 
    :flash-content="flashContent"
    v-if="flashStatus === true"
    @click="hideFlashMsg"
    @click="addNums">

</Flash>

Как настроить два прослушивателя событий для одного и того же события?

Ответы [ 2 ]

2 голосов
/ 15 марта 2019

Вы можете вызвать несколько функций щелчка следующим образом:

@click="hideFlashMsg(); addNums();"

Или иметь одну функцию для обработки нескольких других функций.

clickhandler(){
    this.function1();
    this.function2();
}
0 голосов
/ 16 марта 2019

Директива v-on может принимать объект, который устанавливает несколько прослушивателей для одного и того же события:

{
  EVENTNAME: [HANDLER_1, HANDLER_2, ... HANDLER_N]
}

Чтобы вы могли сделать:

<Flash v=on"{ click: [hideFlashMsg, addNums] }" />

new Vue({
  el: '#app',
  methods: {
    hideFlashMsg() {
      console.log('hideFlashMsg')
    },
    addNums() {
      console.log('addNums')
    }
  }
})
<script src="https://unpkg.com/vue@2.6.9"></script>

<div id="app">
  <button v-on="{click: [hideFlashMsg, addNums]}">Click</button>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...