2017-01-13 1 views

答えて

11

あなたはVUEからwatcherによって提供さdeepオプションを使用することができます。ドキュメント内に記載されているとおり:

オブジェクト内のネストされた値の変更も検出するには、options引数にtrueを指定する必要があります。配列の突然変異をリッスンする必要はありません。

あなたのコードは、次のようになります。

watch: { 
    'selected': { 
     handler: function (val, oldVal) { 
      console.log('watch 1', 'newval: ', val, ' oldVal:', oldVal) 
     }, 
     deep: true 
    } 
} 
3
watch: { 
    'selected.type': function (newSelectedType) { 
    console.log(newSelectedType) 
    }, 

    'selected.instrument': function (newSelectedinstrument) { 
    console.log(newSelectedinstrument) 
    } 
} 

:私は、このたびのようなものにインデックスの更新のいずれかを実行したいですまた、計算されたプロパティはデータの変化を検出することもできます。


あなたがオブジェクト全体を見るために、単一の機能を使用する場合は、deep: true$watchを使用することができますが:

mounted() { 
    this.$watch('$data.selected', this.onSelectedUpdate, { deep: true }) 
} 

ノート'$data.selected'が文字列であることを、Vueのは、それを解析します。

とあなたの方法で:

onSelectedUpdate (newSelected) { 
    console.log(newSelected) 
} 
関連する問題