芒果不吃罐头 2020-05-29 11:40 采纳率: 50%
浏览 2560
已采纳

vue 点击下拉选项 展示不同的数据

1.想要的结果:
图片说明
现在的问题是:
点击项目工程,其他的标题也都跟着展示出来了
代码是这么写的

<group v-for="(item, index) in navData" :key="index">
<cell
:title="`${item.title}(${item.size})`"
:border-intent="false"
is-link
:arrow-direction="secondaryNodeShow ? 'up' : 'down'"
@click.native="secondaryNode(item, index)">
</cell>
 <template v-if="secondaryNodeShow"></template>
</group>

在data声明了一个 : secondaryNodeShow: false

secondaryNode (value, index) {
      console.log(value, index)
      this.secondaryNodeShow = !this.secondaryNodeShow
      // 通过点击的title和总的title做筛选 ,如果两个title相等 secondaryNodeShow = true else false
      // this.navData.filter(item => {
      //   // debugger
      //   if (item.title === value.title) {
      //     this.secondaryNodeShow = true
      //   } else {
      //     console.log(item.title)
      //     console.log(value.title)
      //     this.secondaryNodeShow = false
      //   }
      // })
      this.$http.get(`/mrData/list/${this.loginName}/${value.treeId}`, {}, res => {
        console.log(res)
        res.data.forEach(item => {
          item.avatar = this.$imgUrl + item.avatar
        })
        this.secondaryData = res.data
      })
    },
  • 写回答

3条回答 默认 最新

  • 我爱吃西瓜喵 2020-06-01 14:32
    关注

    将secondaryNodeShow用数组来存,secondaryNodeShow :[false,true] 遍历判断的时候通过secondaryNodeShow [index]来拿值就可以了


    :arrow-direction="secondaryNodeShow[index] ? 'up' : 'down'"

    data里声明 secondaryNodeShow:[false,false,false,false],这个长度可以根据数据的长度来写

    secondaryNode (value, index) {
          this.secondaryNodeShow[index] = !this.secondaryNodeShow[index]
          // 通过点击的title和总的title做筛选 ,如果两个title相等 secondaryNodeShow = true else false
          this.navData.filter((item,index) => {
          //   // debugger
            if (item.title === value.title) {
              this.secondaryNodeShow[index] = true
            } else {
               console.log(item.title)
              console.log(value.title)
              this.secondaryNodeShow[index] = false
            }
          })
          this.$http.get(`/mrData/list/${this.loginName}/${value.treeId}`, {}, res => {
            console.log(res)
            res.data.forEach(item => {
              item.avatar = this.$imgUrl + item.avatar
            })
            this.secondaryData = res.data
          })
        },
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已采纳回答 3月1日

悬赏问题

  • ¥15 matlab有关常微分方程的问题求解决
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable