Giriş yapmadınız.

#1 17.06.2017 05:58:25

ahmetkuslular
Üye
Kayıtlı: 03.06.2016
Mesajlar: 122

parent child $emit

Arkadaşlar merhaba. bir message girilince üst component de bulunan bir array'i değiştirmek istiyorum lakin parent component' deki methoda bir türlü giremedim. Kodlarım aşağıdaki gibidir. yardımcı olursanız sevinirim.

child Component(AddMessage)

this.$parent.$emit('newMessage', response.data)

ParentComponent

import AddMessage from './add_message.vue'
    export default {
        components: {
            add_message:AddMessage
        },
        data(){
            return {
                messages:[]
            }
        },
        methods:{
            newMessage: function (data) {
                console.log(data)
                this.messages.push(data)
            },
        }
    }

Çevrimdışı

#2 08.04.2018 21:43:58

Remzi0068
Üye
Kayıtlı: 08.04.2018
Mesajlar: 3

Yanıt: parent child $emit

Bunun icin bir event bus olusturmaniz gerekir. (Kücük projeler icin Vuex kullanmak yerine VueJS tarafindan önerilen yöntem).

resources/assets/js/app.js icine bos bir event Bus ekleyin

window.events = new Vue();

child Component(AddMessage)

events.$emit('newMessage', response.data);

ParentComponent

import AddMessage from './add_message.vue'
    export default {
        components: {
            add_message:AddMessage
        },
        data(){
            return {
                messages:[]
            }
        },
        methods:{
            newMessage: function (data) {
                console.log(data)
                this.messages.push(data)
            },
        },
        created(){
             events.$on('newMessage', (data) => {
                  this.newMessage(data);
             })
        } 
    }

Event'leri izlemek icin Chrome'da Vue Devtools'da Sag Üst taraffda bulunan "Events" sekmesinden takip ve debug edebilirsiniz.

Son düzenleyen Remzi0068 (08.04.2018 21:45:31)

Çevrimdışı

Forum alt kısmı