首页 > 使用vue.js实现联动效果

使用vue.js实现联动效果

想用vue.js写一个联动效果,按照自己的思路实验了下,并没有成功。请大家指点下
我的思路是:通过遍历YX数组,如果某个对象的text和第一个select的selected value相同,则显示对应院系的专业

<div id="test">
    <select v-model="A">
    <option v-for="yx in YX">
        {{yx.text}}
    </option>
</select>


<select name="ZY">
    <option v-for="zy in {{ selection }}">
        {{zy.text}}
    </option>
</select>
</div>

<script>
new Vue({
    el:'#test',
    data:{
        YX:[
            {
                text:'计信院',
                ZY:[
                    {text:'软件工程'},
                    {text:'计算机科学与技术'},
                    {text:"信息安全"},
                ]
            },
            { 
                text:'商学院',
                ZY:[
                    {text:'旅游管理'},
                    {text:'工商管理'},
                    {text:"行政管理"},
                ]
            },       
        ]
    },
    computed:{
        selection: {
            get: function() {
                var obj;
                var ZY = eval(this.YX)
                for(obj in ZY)
                {
                    if(A == obj.text)
                        B = obj.ZY
                }
                return B
            }
        }
    }
});
</script>

<div id="test">
    <select v-model="A">
        <option v-for="yx in YX">
            {{yx.text}}
        </option>
    </select>

    <select>
        <option v-for="zy in selection">
            {{zy.text}}
        </option>
    </select>


</div>

<script>
var vm = new Vue({
    el:'#test',
    data:{
        YX:[
            {
                text:'计信院',
                ZY:[
                    {text:'软件工程'},
                    {text:'计算机科学与技术'},
                    {text:"信息安全"},
                ]
            },
            { 
                text:'商学院',
                ZY:[
                    {text:'旅游管理'},
                    {text:'工商管理'},
                    {text:"行政管理"},
                ]
            },       
        ]
    },
    computed:{
        selection: function() {
            for (var i = 0; i < this.YX.length; i++) {
                if (this.YX[i].text === this.A) {
                    return this.YX[i].ZY;
                }
            }
        }
    }
});

看看这个是不是你想要的


eval都出来,这种问题用js判断下一个value再设置下另一个的option元素就完了,为何非要用框架解决


没用过vue,不过个人觉得官方docs肯定能解决题主的问题 。


建议还是多看官方文档, 我的实现参考:http://jsfiddle.net/x1p47kpr/

【热门文章】
【热门文章】