Hai, saya agak bingung tentang vm.$dispatch
karena saya mengharapkannya mengembalikan nilai dari panggilan balik pendengar untuk logika lebih lanjut yang tidak dapat ditempatkan di panggilan balik _(imo)_ tetapi ternyata itu adalah contoh itu sendiri. Saya sedang belajar Vue dan mungkin melewatkan sesuatu.
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);
}
}
})
Seperti yang Anda lihat, operasi pra-buat adalah opsional.
Terima kasih.
SomeAsyncCode === false
$dispatch
mengharapkan Anda untuk memberikan beberapa argumen termasuk fungsi panggilan balik.this.$dispatch('object:creating', args, function() {
// The business logic
this.performWhatever(args);
})
dan di sisi penerima,
events: {
'object:creating' : function (args, callback) {
// Do something with args and fire callback (or not)
callback()
}
}
Terima kasih @fnlctrl atas penjelasannya :)
@fnlctrl Terima kasih atas penjelasannya. Ini asinkron, saya lupa, betapa memalukan =D
Komentar yang paling membantu
SomeAsyncCode === false
$dispatch
mengharapkan Anda untuk memberikan beberapa argumen termasuk fungsi panggilan balik.dan di sisi penerima,