【发布时间】:2020-08-24 20:06:56
【问题描述】:
我遇到了以下指令的问题,它适用于除模板标签之外的任何标签
Vue.directive('count',{
bind(el,b,v){
console.log(b.value);
},
inserted(el,b,v){
console.log(b.value);
},
update(el,b,v){
console.log(b.value);
}
});
new Vue({
el: "#app" ,
data:{
value:0
}
})
<div id="app">
<button @click="value+=1">
inc value
</button>
<template v-count="value">
</template>
<!-- <div v-count="value">
</div> -->
</div>
如果 div 上的注释被删除,指令会记录该值,但不会触发模板标签指令的钩子
这里jsfiddle 的问题
谢谢
【问题讨论】:
-
但是 v-if 指令即使在模板@palaSH 上使用也是有效的
-
如果条件为真,您可以隐藏模板及其子模板
-
ok 我来解释一下,假设 里面有孩子,我们把 v-if 带上一个条件,如果条件为真,就会渲染孩子,这意味着 v-if 指令正在处理 没有问题,我尝试创建一个指令以删除模板中的任何子项,如果我放置我的指令但指令挂钩没有触发,如果我在 div 上使用它,同样的情况是有效的
-
是的,我明白,当它与 一起使用时,我需要我的指令,触发指令的钩子,但它没有发生。您说与模板标签一起使用时不支持它,但即使与模板一起使用,v-if 也能正常工作。希望你得到我
-
你能解释一下 v-if 钩子在与模板标签一起使用时是如何触发的吗,我不清楚