2
に発生しません発する:
remove関数が呼び出される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'
});
}
})
}
}
}
、コンソールログは「火べき」が、$発するイベントが発生しません。コールバックの外に$ emitを移動すると、次のようになります。
export default {
props: ['note'],
methods: {
remove(){
this.$emit('alerted', {
type: 'error',
message: 'Failed to remove note'
});
NoteRepo.remove(this.note, (err) => {
if (err) {
console.log('Should Fire')
}
})
}
}
}
これは機能します。私は_this = this
を割り当てて、それを使って$ emitを発火させましたが、違いはありません。
$ emitイベントがコールバックで起動しないのはなぜですか?
矢印機能を使用しないようにしましたか?私はちょうどvueを使い始めましたが、私は、矢印関数がいくつかの場所で使用されたときに正しくコンテキストをバインドしないというドキュメントを読むことを覚えているようです。 – theWanderer4865
ええ、私が正しく理解している場合、矢印関数を使用するとき、 'this'はVueインスタンスを表します。この場合は、矢印関数が問題ありません。つまり、私は試してみました(そしてまた、プロセスで '_self = this 'を割り当てます)、違いはありません。私はそれをエイリアスするためのあらゆる種類の方法を試しましたが、運はありません。 – evu
ここで適切なビットが見つかりました:http://vuejs.org/v2/guide/instance.html#Properties-and-Methodsのように見える矢印関数は、VMインスタンスにバインドされていません。 – theWanderer4865