vue 循环中点击改变上下箭头的图标问题。
点击箭头改变方向
<ul class="menu-list" v-for="(data,index) in item.modelList" :key="index" :class="[index==0 ? 'item1' : '']"> <li class="menuTitle" @click="selectItem(data.name,data.id)" :class="activeName == data.name ? 'menuTitle': 'nonMenuTitle'">
{{ data.name }}
<Icon :type="show == true ? 'ios-arrow-up' : 'ios-arrow-down'" @click="arrowControl()"/>
</li>
arrowControl(){
this.show = !this.show;
},
因为是在循环里面我这么写的话点击一个,所有的图标都改变了,求详细解释,感谢各位
回答:
全局只有一个 show
,当然只能控制所有菜单组都是同一个状态。
你给每个菜单组一个 show
属性,按它自己的 show
来显示就好了。
<Icon :type="data.show ? 'ios-arrow-up' : 'ios-arrow-down'" ... />
顺便提醒一下:不要用index
来作为:key
,应该在数据元素中找一个唯一属性来作为:key
,比如data.id
回答:
你是如何高亮文字的,那就如何设置箭头方向啊,相同的判断逻辑。
回答:
实现代码部分可以全发出来吗,这样不好分析
回答:
把是否展开的 判断字段 show 添加到 data 中的每一项中,通过 data.show 去改变样式,但是注意 show 字段如果是在 点击事件中 添加的属性 需要通过 $set 设置
以上是 vue 循环中点击改变上下箭头的图标问题。 的全部内容, 来源链接: utcz.com/p/936384.html