<div>
<div v-for="item in data" v-on-go="goto(item.id)">
<span>{{item.name}}</span>
</div>
</div>
const goto = (id)=>{
...get id todo sth
}
类似以上代码 在v-for中使用自定义指令并且传值到方法中会造成此goto方法在页面渲染时会自动执行,就算你的v-on-go只设置了click事件方法,但是基于v-for指令他总是会自动执行。
解决:将自定义指令放到v-for的外层盒子上可以解决,具体的可以根据实际需求调整,目前看来反正v-for将自定义指令套入其中并传入变量到方法中执行会出现问题。抛砖引玉~~。
<div v-on-go="dosth">
<div v-for="item in data" @click="goto(item.id)">
<span>{{item.name}}</span>
</div>
</div>
const goto = (id)=>{
...get id todo sth
}
const dosth = ()=>{
...
}