elementUI里CheckBox组件的change回调如何在使用自定义传参的条件下保留默认传参?

我想在勾选的时候,传递该行数据item,同时根据CheckBox更新后value的值向数组selectedId中插入item中的uid。
官方文档里面只有一个默认的回调参数,我想在这基础上再多传递一个参数,有什么办法么?

clipboard.png

下面是我的代码...

<div id="app">
    <div v-for="item in stylesData">
        <el-checkbox v-model="item.checked" @change="selecteChange(item)"></el-checkbox>
        <img v-bind:src="item.src"/>
        <p>{{item.text}}</p>
    </div>
</div>

<script>
    const app = new Vue({
        el: '#app',
        data: function(){
            return {
                selectedId: [],        //选中后的UID数组
                stylesData: [{
                    uid: 1,
                    checked: false,
                    src: 'xxx.jpg',
                    text: '一段描述'
                },{
                    uid: 2,
                    checked: false,
                    src: 'xxxx.jpg',
                    text: '二段描述'
                },{
                    uid: 3,
                    checked: false,
                    src: 'xxxxx.jpg',
                    text: '三段描述'
                }]
            }
        },
        methods: {
            selecteChange: function(item,value){
                console.log(item);
                console.log(value);
                if(value == true){
                    app.selectedId.push(item.uid);
                }
            }
        }
    });
</script>
阅读 23.2k
3 个回答

同问,有什么办法保留默认传参

找到解决办法了。

@change="checked=>方法名(checked,你想传的额外参数...)"

实例

<el-checkbox :disabled="scope.row.disable" v-model="scope.row.cashStatus"
                       @change="checked=>checkRow(checked, scope.row)"></el-checkbox>
                       
checkRow(checked,row) {
    console.log(`checked:${checked}`)
    console.log(`row:${JSON.stringify(row)}`)
  },

控制台结果:

checked:true
row:{"name":"FB 周日","disable":false,"cashStatus":true,"netStatus":false}
@change="selecteChange(a,b,c,d...)"

selecteChange(a,b,c,d...){
    //...
}

这种形式是自定义传参,还有一种是默认传参

@change="selecteChange"

selecteChange(val,e){
    //...
}

你用自定义传参就可以了,传入一个item参数不就够了吗?value根据item.checked可以获取到。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏