2017-06-26 8 views
1

を参照してください。このような方法でvueバインドを解決するには

data_aが変更された場合、getDataBが実行されます。

この問題を処理するにはどうすればよいですか?

<template> 
<div> 
    <div :data-a="data_a"> 
     demo show params A 
    </div> 
    <div :data-b="getDataB()"> 
     demo show params B 
    </div> 
</div> 
</template> 
<script> 
    export default { 
     data() { 
      return { 
       data_a: 0, 
       datas: [ 
        0, 1, 2, 3, 4 
       ] 
      } 
     }, 
     methods: { 
      getDataB() { 
       console.log('getDataB() called'); 
      } 
     }, 
     mounted() { 
      setInterval(function() { 
       this.data_a = parseInt(Math.floor(Math.random() * 10000000000)); 
      }.bind(this), 1000); 
     } 
    } 
</script> 
+0

使用 'computed'代わりの方法を、その後。メソッドはすべての再レンダリングで実行されます。 – wostex

答えて

0

まず、ES6に切り替えてbindを避けてください。

mounted() { 
      setInterval(() => { 
       this.data_a = parseInt(Math.floor(Math.random() * 10000000000)); 
      }, 1000); 
     } 

そして、それを計算するためにgetDataBを変更します。

computed: { 
      dataB() { 
       // do something with data_a 
       console.log('calc based on this.data_a in progress...') 
       return this.data_a*2 // ;) 
      } 
     }, 
関連する問題