2017-02-22 2 views
0

this.$emit nicht in mounted Haken funktionieren. Wie man damit umgeht? Ich muss setTimeout hinzufügen, aber es ist eine schlechte Idee.

Innerhalb watcher funktioniert es gut. In

watch: { 
    propInitialValue: function(val, oldVal) { 
     this.value = this.getValue(val); 
    }, 
    value: function(val, oldVal) { 
     if(! this.isDisabled) { 
      this.$emit('changed', this.propName, val); 
     } 
    } 
}, 
+0

Ereignisse nur einen Wert emittieren kann. Wenn Sie vue-devtools verwenden: https://chrome.google.com/webstore/detail/vuejs-devtools/nhdogjmejiglipccpnnnanhhledajbpd können Sie sehen, ob das Ereignis ausgelöst wurde. –

+1

Nein, viele Werte. Das. $ emmit funktioniert in anderen Methoden. Oder mit setTimeout in diesem Fall. –

+0

Versuchen Sie es mit 'this. $ Emit ('geändert', {prop: this.propName, value: this.value});' Ich kann es nirgendwo finden, aber ich bin zuversichtlich, dass Ereignisse so viele Werte nicht ausgeben können. –

Antwort

0

.bind(this)

setTimeout(() => { 
    this.$emit('changed', this.propName, this.value); 
}, 1900).bind(this) 
Verwandte Themen