Создание собственного события внутри функции в объекте методов

1

Когда на моей кнопке запускается событие v-on: click, я хотел бы запустить функцию внутри объекта моих методов внутри моего компонента Vue. К сожалению, поскольку мне нужно выпустить настраиваемое событие, я получаю следующую ошибку в моей консоли: $ emit не определен.

Как я могу создать настраиваемое событие внутри функции в объекте методов?

Кнопка в моем шаблоне

<button class="edit-recipe-modal-btn" v-on:click="updateRecipeClicked">Save Edits</button>

Объект my methods, содержащий код для создания настраиваемого события

methods: {
  updateRecipeClicked() {
    $emit('update-recipe-clicked', newRecipe);
    // some other code will be written here
  }
},
Теги:
vue.js
vuejs2
event-handling
vue-component

1 ответ

1
Лучший ответ

Попробуйте с this

methods: {
  updateRecipeClicked() {
  this.$emit('update-recipe-clicked', this.newRecipe );
  // some other code will be written here
  }
},
  • 0
    Спасибо, ваше решение сработало; Однако я понял, что мне также нужно изменить newRecipe на this.newRecipe. Если вы сможете отредактировать эту часть вашего решения, я отмечу ваше решение как правильное :) Кроме того, кажется немного странным, мне нужно ключевое слово "this" в функции emit, можете ли вы объяснить, почему это так?
  • 0
    Здесь вы на самом деле пытаетесь отправить событие родительскому компоненту метода. Итак, для этого вам нужно this ключевое слово. Смотрите документацию, и вы поймете. vuejs.org/v2/guide/...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню