5

ディレクティブ バインド メソッドでは、vnode.context.$watchHTML にそのディレクティブが追加されるたびに、以前のウォッチャーと別のウォッチャーも追加されます。そのため、同じウォッチャーが複数回呼び出しています。

ディレクティブ unbind メソッドが呼び出されたときに、以前のウォッチャーを破棄する方法はありますか。

Vue.directive("dynamic-lookup", {
    bind: function (el, binding, vnode) {        
        let dependency = setValue("dynamic-lookup-dependency");       
        if (dependency) {
            vnode.context.$watch(dependency, function (newVal, oldVal) { }); });
        }
    },
    unbind: function(el, binding, vnode) {
        console.log("unbind");
    }
});
4

2 に答える 2