私はvue.jsが初めてです。 angularjsアプリの移行を開始しています。 vue cliを使用して新しいsimple-webpackプロジェクトを生成しています。これにより、新しいwebpack + vueLoaderプロジェクトが作成されます。すべてが順調に進みましたが、問題が発生しています。@ clickイベントで欲しいデータを変更するが、オブジェクトにアクセスできない 'this'はデータインスタンスではありません。
ここで何が欠けていますか?
<template>
<input type="radio" name="account-type" @click="setAccountType(item.id)"/><span>{{item.name}}</span>
</template>
<script>
export default {
data() {
return { accountType: null
},
methods: { setAccountType: (typeId) => this.accountType = typeId
}
</script>
これは期待どおりのデータインスタンスではないため、更新されません。 vuejs docでは、メソッドでこれに対処するだけで十分です: vue js doc
どんな助けでもありがたいです。
敬具。
Vue instance to get Vue instance data for this
のため、アロー関数を使用してthis
を参照することはできませんwindow
の場合、正しいES6構文は次のとおりです。
setAccountType(typeId){
this.accountType = typeId
}
Arrow関数を含むJSFiddle: https://jsfiddle.net/zxqohh0L/
非矢印ES6関数を使用したJSFiddle: https://jsfiddle.net/zxqohh0L/1/
メソッド自体の内部でも矢印関数を使用できます。