Im folgenden Code:
export default {
props: ['note'],
methods: {
remove(){
NoteRepo.remove(this.note, (err) => {
if (err) {
console.log('Should Fire')
this.$emit('alerted', {
type: 'error',
message: 'Failed to remove note'
});
}
})
}
}
}
Wenn die Entfernen-Funktion aufgerufen wird, die Konsolenprotokolle „Sollen Feuer“, aber das $ emittieren Ereignis ausgelöst nicht bekommen. Wenn ich das $ -Empfänger außerhalb des Rückrufs wie folgt verschiebe:
Es funktioniert. Ich habe versucht, _this = this
zuzuteilen und das zu verwenden, um das $ emergieren aber keinen Unterschied auszustoßen.
Warum wird das $ emitter-Ereignis nicht in einem Callback ausgelöst?
haben Sie versucht, keine Pfeilfunktion zu verwenden? Ich fing gerade an, vue zu benutzen, aber ich scheine mich zu erinnern, in den Dokumenten zu lesen, dass Pfeilfunktionen Kontext nicht richtig binden, wenn sie an einigen Stellen benutzt werden. – theWanderer4865
Ja, wenn ich richtig verstehe, wenn '' '' die Vue -Instanz verwendet, dann ist in diesem Fall eine Pfeilfunktion in Ordnung. Davon abgesehen habe ich versucht (und auch "_self = this" zuzuweisen) und es gibt keinen Unterschied. Ich habe alle möglichen Wege ausprobiert, um es zu kopieren, aber kein Glück. – evu
Ich habe das relevante Bit hier gefunden: http://vuejs.org/v2/guide/instance.html#Properties-and-Methods sieht aus wie eine Pfeilfunktion, die nicht an die VM-Instanz bindet. – theWanderer4865