亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Vue使用v-for遍歷出數據后,某些功能的實現,希望給點幫助或想法。

Vue使用v-for遍歷出數據后,某些功能的實現,希望給點幫助或想法。

哈士奇WWW 2018-12-27 18:15:43
//attr數據"attr":[    {    "attrName":"顏色",    "attrList":[{"attrVal":"紫色"},{"attrVal":"紅色"}]    },    {    "attrName":"型號",    "attrList":[{"attrVal":"大號"},{"attrVal":"中號"},{"attrVal":"小號"}]    }],//v-for的實現<div class="pro-attr">    <div class="pro-attr-list" v-for="item in numData.attr">    <h2>{{item.attrName}}</h2>    <ul>        <li v-for="listName in item.attrList" :class="{active:listName.attrVal==actAttr}" @click="actAttrFlag(listName.attrVal)">{{listName.attrVal}}</li>    </ul>    </div></div>渲染出來的結果問題:因為屬性沒有確定有多少個,所以只能循環出來 ,這樣做出來的結果是不管是顏色和型號的所有選項中只能一個被選中,而我想要的結果是,顏色可以有一個被選中,型號也有一個可以被選中,我應該怎么改,或者有思路提供下也行,謝謝。
查看完整描述

1 回答

?
當年話下

TA貢獻1890條經驗 獲得超9個贊

直接上代碼咯,其實選好被選中屬性的數據結構一樣可以解決問題


<div class="container">

  <div v-for="(item, key) in attr">

    <h2>{{item.attrName}}</h2>

    <ul>

      <li v-for="attrItem of item.attrList" v-bind:class="{active: actAttr[key].value == attrItem.attrVal}" @click="selectItem(key, attrItem.attrVal)">

        {{attrItem.attrVal}}

      </li>

    </ul>

  </div> 

</div>

</template>

<script type="text/javascript">

export default {

  data () {

    return {

      actAttr: [{

        attrName: '顏色',

        value: '紅色'

      }, {

        attrName: '型號',

        value: '中號'

      }],

      attr: [{

        attrName: '顏色',

        attrList: [{

          attrVal: '紫色'

        }, {

          attrVal: '紅色'

        }]

      }, {

        attrName: '型號',

        attrList: [{

          attrVal: '大號'

        }, {

          attrVal: '中號'

        }, {

          attrVal: '小號'

        }]

      }]

    }

  },

  methods: {

    selectItem (key, val) {

      console.log(val)

      this.actAttr.splice(key, 1, {

        attrName: this.attr[key].attrName,

        value: val

      })

      console.log(this.actAttr[key])

    }

  }

}

</script>

<style type="text/css">

.container {

  text-align: left;

}

.active {

  color: red;

}

</style>


查看完整回答
反對 回復 2019-01-29
  • 1 回答
  • 0 關注
  • 586 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號