2017-06-19 2 views
0

は、ディレクティブにプロパティをスコープする方法はありますか?何かこれは私がそれに基礎を追加することができますし、要素がバインドされていないときに(イベントリスナーなどを削除する)をクリアすることができますか?あなたはVueのインスタンス上のデータのプロパティにアクセスできるようになるvnode.contextを使用する必要がVue.jsのカスタムディレクティブにプロパティを適用する方法は?

Vue.directive('toggler', { 
    inserted(el) { 
    this.toggler = new Foundation.Toggler($(el)); 
    }, 
    unbind() { 
    this.toggler.destroy(); 
    }, 
}); 

答えて

0

Vue.directive('toggler', { 
    inserted(el, binding, vnode) { 
    vnode.context.toggler = new Foundation.Toggler($(el)); 
    }, 
    unbind(el, binding, vnode) { 
    vnode.context.toggler.destroy(); 
    }, 
}); 

は、ここで基本的なプロセスを示すことJSFiddleです:そうhttps://jsfiddle.net/dv5n39ta/

+0

このディレクティブを使用する1つのページに複数の要素があった場合、どうすればうまくいかれますか?彼らはそれぞれトグループロパティーを上書きするでしょうか? – user1280853

+0

私は単純に要素に要素を保存します。 –

+0

例を挙げてください。要素のプロパティに割り当てられたものを破棄しようとしている場合は、イベントリスナーをクリアしますか? – user1280853

2

OKこの私が望んでいたものを達成する。要素にプロパティを割り当てると、ジョブが実行されます。

Vue.directive('f-toggler', { 
    inserted(el) { 
    /* eslint-disable no-param-reassign */ 
    el.fToggler = new Foundation.Toggler($(el)); 
    }, 
    unbind(el) { 
    el.fToggler.destroy(); 
    }, 
}); 
関連する問題