javascript - vue中的数据绑定

查看:124
本文介绍了javascript - vue中的数据绑定的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

<template>

<div class="classify-major">
    <div class="search-box"></div>
    <div class="classify-nav">
        <div class="classify-sort" @click="sortEvent" :class="{'active':this.sort===true}">{{sortData}}<i class="icon iconfont icon-tubiaojiantouxiangshang"></i></div>
        <div class="classify-filter" @click="filterEvent">筛选<i class="icon iconfont icon-tubiaojiantouxiangshang"></i></div>
    </div>
    
    <transition name="fade">
            <div class="sort-list" v-show="sort">
                <ul>
                    <li v-for="(item,$index) in items"  @click="selectIcon(item,$index)" :class="{'active':item.show===true}" >{{item.sort}}<i class="icon iconfont icon-iconfont31xuanze" v-if='item.show'></i></li>
                </ul>
                <div class="sort-mask"  v-show="sort" @click="sortMask"></div>
            </div>
    </transition>    
    
    <div class="classify-product">
        <div class="img-box">
            <img src="../../assets/images/classify_img01.png" alt="布匹">
            <p class="desc">双面妮女装扎染面料123145-18</p>
            <p class="price"> ¥ 42.50元/米</p>
            <cartconcontrol class="cartconcontrol"></cartconcontrol>
            <div class="cart"><i class="icon iconfont icon-gouwuche2"></i></div>
        </div>
        <div class="img-box">
            <img src="../../assets/images/classify_img02.png" alt="布匹">
            <p class="desc">双面妮女装扎染面料123145-18</p>
            <p class="price"> ¥ 42.50元/米</p>
            <div class="cart"><i class="icon iconfont icon-gouwuche2"></i></div>
            <cartconcontrol class="cartconcontrol"></cartconcontrol>
        </div>        
    </div>
</div>

</template>
<script>

import cartconcontrol from 'components/cartconcontrol/cartconcontrol';
export default{
    data () {
        return {
            msg: '',
            sort: false,
            sortData: this.items[0].sort,
            items: [
                    {sort: '综合排序', show: false},
                    {sort: '最新发布', show: false},
                    {sort: '价格从低到高', show: false},
                    {sort: '价格从高到低', show: false}
                ]
        };
    },
    components: {
        cartconcontrol
    },
    methods: {
        sortEvent () {
            this.sort = !this.sort;
        },
        sortMask () {
            this.sort = !this.sort;
        },
        selectIcon (item, $index) {
            item.show = !item.show;
            this.sort = !this.sort;
            console.log(this.items[$index].sort);
        },
        filterEvent () {
            this.sort = false;
            console.log('a');
        }
    }
};

</script>
想根据console.log(this.items[$index].sort);的索引得到的当前数据填充到图一的{{items[0].sort}}中,不操作DOM的情况下,使用vue该怎么实现?

解决方案

data里加个数据,绑在图一中的div那里,初始设置成初始值。然后selectIcon方法里修改此数据的值。

或者麻烦点这么写

data() {
    return {
        //...
        index: 0
    };
},
computed: {
//写到计算属性里
    sortData(){
        return this.items[this.index].sort;
    }
},
methods: {
    selectIcon(item, $index) {
        item.show = !item.show;
        this.sort = !this.sort;
        this.index = $index;
    }
{

这篇关于javascript - vue中的数据绑定的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆