2017-01-11 6 views
1

単一のファイルコンポーネントを使用して、ディレクティブからデータプロパティを変更するにはどうすればよいですか?したがって、たとえば、私が持っている Vue.js 2、ディレクティブからデータを変更する

...

export default { 
    name: 'app', 
    data: function() { 
     return { 
      is_loading: true 
     } 
    }, 
    directives: { 
     do_something: { 
      bind: function(el, binding, vnode) { 
       // Change the is_loading property 
      } 
     } 
    } 
} 

は、最初に私は私がthis.is_loading = falseしかしthisundefinedで行うことができると思いました。

do_something: { 
     bind: function(el, binding, vnode) { 
      // same as this.is_loading in a directive 
      vnode.context.is_loading = false; 
     } 
    } 

を次に、あなたのマークアップであなたがするだろう:

<div v-do_domething></div> 

はここJSFiddleだあなたが持っているでしょうディレクティブでので、あなたは、単に、vnode.contextを使用することができますディレクティブでthisを参照するために

答えて

3
+0

完璧に働いた、歓声! – KeironLowe

+0

文書は「el」以外のすべてを読み取り専用として扱うと言っています。 https://vuejs.org/v2/guide/custom-directive.html これを行う別の方法はありますか? – Ashbury

+0

Hmm。これは、ドキュメントが参照している意味での変更ではなく、インスタンス自体の外部からのvueインスタンスの参照とまったく同じ、Vueインスタンスへの参照に過ぎないと主張します。 –

関連する問題