[vue.js] 根据对应的选择内容,选中对应的radio按钮

开发中遇到一个内容,当你选中一个列表内容时,radio也要对应的进行选中。现已解决。于是贴一个例子出来和大家分享

 

 HTML:

<div class="panel-body" id="app" v-cloak>
    <div class="col-xs-6 col-md-5">
        <div class="custom_bg">
            <ul>
                <li v-for="menu in menus">
                    <a href="javascript:void(0);" v-on:click="select($index)"><i class="fa fa-bars" aria-hidden="true"></i> {{menu.title}}</a>
                    <ul>
                        <li v-for="subMenu in menu.subMenus">
                            <a href="javascript:void(0);" v-on:click="select($parent.$index, $index)">{{subMenu.title}}</a>
                        </li>
                    </ul>
                </li>
            </ul>
        </div>
    </div>
    <div class="col-xs-12 col-sm-6 col-md-7">
        <form class="form-horizontal">
           
            <div class="form-group">
                <label class="col-sm-2 control-label">菜单动作:</label>
                <div class="col-sm-10">
                    <label class="radio-inline">
                        <input type="radio" name="inlineRadioOptions" id="inlineRadio1" value="0"  v-model="currentNode.type" /> 链接
                    </label> <label class="radio-inline">
                    <input type="radio" name="inlineRadioOptions" id="inlineRadio2" value="1"  v-model="currentNode.type" /> 触发关键字
                </label>
                </div>
            </div>
        </form>
    </div>  
</div>

JS:

Vue.config.debug = true
var vm = new Vue({
    el: '#app',
    data: {
        selected: -1,
        selectedSub: -1,
        currentNode: {
        	title: "",
            type: null,
        },
        menus: [
            {
                "title": "菜单名称1",
                "type": 0,
                "subMenus": [
                    {"title": "子菜单1-1", "type": 0},

                    {"title": "子菜单1-2", "type": 1},

                ]
            },
        ]
    },
    computed: {
        selectedItemType: function () {
            const currentSelect = this.currentSelect()
            if(!currentSelect) return null
            return currentSelect.type
        },
    },
    methods: {
     select: function (parentIndex = -1, childIndex = -1) {
            this.selected = parentIndex
            this.selectedSub = childIndex
            
            this.currentNode = { 
              title: this.selectedItemTitle,
                type: this.selectedItemType,
                value: this.selecetdItemValue
            }
        }, 
       currentSelect: function() {
            if (this.selectedSub === -1) {
                return this.menus[this.selected]
            }
            return this.menus[this.selected].subMenus[this.selectedSub]
        }, 
    }
});

或者大家可以直接在编辑器中进行查看。https://jsfiddle.net/monobright/s02ocme3/3/?utm_source=website&utm_medium=embed&utm_campaign=s02ocme3
主要的功能点就是这个了,各位也可以根据需求进行相应的更改(*^▽^*)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值