Salut, je suis un peu confus au sujet du vm.$dispatch
car je m'attendais à ce qu'il renvoie des valeurs du rappel de l'auditeur pour plus de logique qui ne pouvait pas être placé dans le rappel _(imo)_ mais il s'est avéré être le exemple lui-même. J'apprends Vue et j'ai probablement raté quelque chose.
var vm = new Vue({
// omitted
events: {
'object:creating' : function (args) {
// omitted
return false;
},
'object:created' : function (args) {
// omitted
}
}
});
var child = new Vue({
parent: vm,
// omitted
methods: {
performWhatever: function (args) {
//
},
createObject: function (args) {
// Pre-create
if ( this.$dispatch('object:creating', args) === false ) {
// Stop the creation
}
// The business logic
this.performWhatever(args);
// Post-create
this.$dispatch('object:created', args);
}
}
})
Comme vous pouvez le voir, l'opération de pré-création est facultative.
Merci.
SomeAsyncCode === false
$dispatch
s'attend à ce que vous passiez plusieurs arguments, y compris une fonction de rappel.this.$dispatch('object:creating', args, function() {
// The business logic
this.performWhatever(args);
})
et du côté du récepteur,
events: {
'object:creating' : function (args, callback) {
// Do something with args and fire callback (or not)
callback()
}
}
Merci @fnlctrl pour l'explication :)
@fnlctrl Merci pour l'explication. C'est asynchrone, j'oubliais, quelle honte =D
Commentaire le plus utile
SomeAsyncCode === false
$dispatch
s'attend à ce que vous passiez plusieurs arguments, y compris une fonction de rappel.et du côté du récepteur,