2017-11-29 7 views
1

버튼에서 v-on : click 이벤트가 트리거되면 내 Vue 구성 요소 내 메소드 객체 내에서 함수를 실행하고 싶습니다. 불행하게도, 커스텀 이벤트를 발생시킬 필요가 있기 때문에, 콘솔에 다음과 같은 에러가 발생합니다. $ emit가 정의되지 않았습니다.메소드 객체의 함수 내에서 사용자 정의 이벤트 발생

메서드 개체의 함수 내에서 사용자 지정 이벤트를 내보내려면 어떻게해야합니까?

methods: { 
    updateRecipeClicked() { 
    $emit('update-recipe-clicked', newRecipe); 
    // some other code will be written here 
    } 
}, 

답변

1

함께 시도

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

내 방법은 사용자 정의 이벤트를 방출하는 코드를 포함하는 객체 내 템플릿의 버튼 this

methods: { 
    updateRecipeClicked() { 
    this.$emit('update-recipe-clicked', this.newRecipe); 
    // some other code will be written here 
    } 
}, 
+0

감사합니다. 당신의 솔루션이 효과가있었습니다. 그러나 newRecipe를 this.newRecipe로 변경해야한다는 것도 알게되었습니다. 솔루션의이 부분을 편집 할 수 있다면 솔루션을 올바르게 표시 할 것입니다. :) 또한 emit 함수에서 "this"라는 키워드가 필요합니다. 왜 그런지 설명 할 수 있습니까? – phao5814

+0

실제로 여기서하려고하는 것은 이벤트의 부모 구성 요소로 이벤트를 전달하는 것입니다. 그래서, 당신은'this' 키워드가 필요합니다. 설명서를 참조하면 이해할 수 있습니다. https://vuejs.org/v2/guide/components.html#Using-v-on-with-Custom-Events – KKK