关于Vue中v-show中添加表达式用于判断是否显示的问题
一、需求场景
1、先来说说我的需求,有数据来源和标签类型两行选项,如下图所示:infoTypeList: [ { id: 11, name: "新闻", mark: "news" }, { id: 13, name: "论坛", mark: "bbs" }, { id: 17, name: "微博", mark: "wb" }, { id: 6, name: "微信", mark: "wx" }, { id: 7, name: "APP", mark: "app" }, { id: 8, name: "平媒", mark: "pm" }, { id: 20, name: "境外", mark: "overseas" }, { id: 21, name: "Facebook", mark: "facebook" }, { id: 22, name: "Twitter", mark: "twitter" } ],
4、然后标签类型集合数据结构如下,其中mark字段存放哪些数据来源包含于当前标签。 markTypeList: [ { id: 32, name: "主帖", mark: "bbs" }, { id: 33, name: "回帖", mark: "bbs" }, { id: 34, name: "原创", mark: "wb" }, { id: 35, name: "转发", mark: "wb_wx" }, { id: 36, name: "头条", mark: "news_app_wx_pm" }, { id: 37, name: "头图", mark: "app" }, { id: 38, name: "置顶", mark: "app" }, { id: 39, name: "要闻", mark: "news" }, { id: 40, name: "头版", mark: "pm" },],
5、在数据来源的各个名称中加入一个点击事件,data中存入一个变量infoTypeMark, 用于保存点击的数据来源标识,我也数据来源的代码贴出来了。 <div v-if="isShowSingleInfoType"> <label class="left-10">数据来源</label> <span class="info-type activecolor" @click="changeInfoType(-1)">全部</span> <span class="info-type" @click="changeInfoType(item.id, item.mark)" v-for="item in infoTypeList" :key="item.id">{{item.name}}</span> <label class="multichoose"> <Button @click="toggleInfoType" size="small">+多选</Button> </label></div>
6、重点是下面这一行代码,通过在v-show中添加表达式,用于判断点击新闻, 应该显示头条和要闻,主要看标红的那块,代码如下: <div class="layout-content-main"> <label class="left-10"> 标签类型 </label> <span class="mark-type activecolor" @click="changeMarkType(-1)">全部</span> <span v-show="item.mark.indexOf(infoTypeMark) > -1" class="mark-type" @click="changeMarkType(item.id)" v-for="item in markTypeList" :key="item.id">{{item.name}}</span></div>
如此就不用写那么多判断了,如上是我在开发的过程中遇到的一个小问题, 若有更好的方法,还希望告诉菜鸟我,3Q!
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: session丢失是怎么解决的
- 下一篇: Android手机游戏摇杆