Vue.js и Multiselect - имя 'input' не существует в текущем контексте

Я пытаюсь запустить метод после того, как значение компонента Vue Multiselect было изменено с помощью @input, но я получаю следующую ошибку компиляции:

CS0103: имя 'input' не существует в текущем контексте

Вот мой мультиселект:

<multiselect v-model="Instalacao.value" label="Serie" track-by="Serie" placeholder="Nº de série" :options="Instalacoes"
    :multiple="false" :searchable="true" :allow-empty="false" :disabled="Editando" @input="getTecnicosByRepresentante">
    <span slot="noResult">Nenhum técnico encontrado</span>
</multiselect>

1 ответ

Решение

Этот пример работает как ожидалось: оба watch и @input обработчик выполнения при выборе значения. Ваша проблема, вероятно, не в коде, который вы включили здесь.

new Vue({
  el: '#app',
  components: {
    Multiselect: window.VueMultiselect.default
  },
  data: {
    Instalacao: {
      value: null
    },
    Instalacoes: [{
        Serie: 'one',
        value: 'Vue.js'
      },
      {
        Serie: 'two',
        value: 'Vue-Multiselect'
      },
      {
        Serie: 'three',
        value: 'Vuelidate'
      }
    ]
  },
  watch: {
    'Instalacao.value': function(newValue) {
      console.log('Updated', newValue);
    }
  },
  methods: {
    getTecnicosByRepresentante() {
      console.log("Input detected, too");
    }
  }
})
<script src="https://unpkg.com/vue@latest/dist/vue.js"></script>
<link href="https://unpkg.com/vue-multiselect@latest/dist/vue-multiselect.min.css" rel="stylesheet" />
<script src="https://unpkg.com/vue-multiselect@latest/dist/vue-multiselect.min.js"></script>
<div id="app">
  <multiselect v-model="Instalacao.value" label="Serie" track-by="Serie" placeholder="Nº de série" :options="Instalacoes" :multiple="false" :searchable="true" :allow-empty="false" @input="getTecnicosByRepresentante">
    <span slot="noResult">Nenhum técnico encontrado</span>
  </multiselect>
  <pre>{{ Instalacao.value }}</pre>
</div>

Другие вопросы по тегам