Как добавить слушателя в vue-multiselect после загрузки страницы? - PullRequest
0 голосов
/ 20 сентября 2018

Мне нужно добавить прослушиватель к vue-multiselect, например, (но это не работает) :

$('.multiselect').change(console.log("multiselect changed"));

Он должен быть добавлен в обновленном hook.

Я много чего пробовал, но из-за природы vue-multiselect обычный jQuery не работает , т.е. вы не можете прослушивать измененияmultiselect__input, поскольку его значение на самом деле не изменяется.

Существует элемент .multiselect__single, который добавляется \ удаляется в зависимости от состояния, но я бы предпочел не прослушивать \ проверять изменения HTML.

1 Ответ

0 голосов
/ 23 сентября 2018

События vue-multiselect не включают change, но вы, вероятно, ищете input (испускается после value изменений) или searchChanged (испускается после поисказапрос изменений).

Идиоматический способ прослушивания события заключается в использовании этого синтаксиса: @EVENTNAME="METHOD".Пример:

<multiselect @input="onSelection">

new Vue({
  el: '#app',
  components: {
  	Multiselect: window.VueMultiselect.default
	},
  data() {
    return {
      value: '',
      options: ['list', 'of', 'options']
    };
  },
  methods: {
    onSelection(newValue) {
      console.log({newValue})
    }
  }
})
<script src="https://unpkg.com/vue@2.5.17"></script>
<script src="https://unpkg.com/vue-multiselect@2.1.0"></script>
<link rel="stylesheet" href="https://unpkg.com/vue-multiselect@2.1.0/dist/vue-multiselect.min.css">

<div id="app">
  <multiselect :options="options" v-model="value" @input="onSelection"></multiselect>
  <div>value: {{value}}</div>
</div>
...