2017-06-19 6 views

Antwort

0

Sie müssen vnode.context verwenden, die Sie auf der Vue-Instanz auf die Daten Eigenschaften zugreifen geben:

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

Hier ist ein JSFiddle den grundlegenden Prozess zeigen: https://jsfiddle.net/dv5n39ta/

+0

Danke, aber wie würde das funktionieren, wenn ich mehrere Elemente auf einer Seite hätte, die diese Anweisung verwenden? Wie würden sie jeweils die Toggler-Eigenschaft richtig überschreiben? – user1280853

+0

Ich würde einfach das Zeug auf dem Element speichern. –

+0

Können Sie bitte ein Beispiel geben? Würde es die Ereignis-Listener aufräumen, wenn Sie versuchen, etwas zu zerstören, das einer Eigenschaft des Elements zugewiesen ist? – user1280853

2

ok so dass diese erreicht, was ich wollte. Wenn Sie dem Element die Eigenschaft zuweisen, wird der Job ausgeführt.

Vue.directive('f-toggler', { 
    inserted(el) { 
    /* eslint-disable no-param-reassign */ 
    el.fToggler = new Foundation.Toggler($(el)); 
    }, 
    unbind(el) { 
    el.fToggler.destroy(); 
    }, 
}); 
Verwandte Themen