こんにちは、 vm.$dispatch
について少し混乱しています。これは、コールバック_(imo)_に配置できなかったロジックについて、リスナーのコールバックから値を返すことを期待していたためですが、インスタンスそれ自体。 私はVueを学んでいて、おそらく何かを逃しました。
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);
}
}
})
ご覧のとおり、事前作成操作はオプションです。
ありがとうございました。
SomeAsyncCode === false
$dispatch
は、コールバック関数を含む複数の引数を渡すことを想定しています。this.$dispatch('object:creating', args, function() {
// The business logic
this.performWhatever(args);
})
そして受信側では、
events: {
'object:creating' : function (args, callback) {
// Do something with args and fire callback (or not)
callback()
}
}
説明してくれてありがとう@fnlctrl :)
@fnlctrl説明ありがとうございます。 それは非同期です、私は忘れました、どれほど恥ずかしい= D
最も参考になるコメント
SomeAsyncCode === false
$dispatch
は、コールバック関数を含む複数の引数を渡すことを想定しています。そして受信側では、