前端基础学习-vue的render函数进行双向绑定

背景

在前面的文章中提到elementui中的table组件可以通过render-header来自定义表头,之前的效果是在表头添加了复选框,后面发现操作成功后应该支持清除勾选的操作,但是通过render函数渲染的元素没有办法进行双向绑定,我们只有通过自己手动通过v-bind和v-on事件实现双向绑定

在这里插入图片描述

代码部分

html
在这里插入图片描述

      <el-table-column prop="name" label="操作人" show-overflow-tooltip :render-header="renderHeader">
        <template slot-scope="scope">
          <span class="blue_txt" @click="handleDetail(scope.row)">{{scope.row.name}}</span>
        </template>
      </el-table-column>

data
在这里插入图片描述
js

    /** 表头增加复选框 */
    renderHeader (h, { column }) {
      return h(
        'span',
        [
          h('el-checkbox', {
            style: 'display:inline-flex;margin-right:15px;',
            // 实现双向绑定
            props: {
              value: this.czrChecked
            },
            on: {
              change: checked => {
                this.czrChecked = checked
                this.selectTableHeader(checked)
              }
              // change: this.selectTableHeader
            }
          }),
          h('span', column.label)
        ]
      )
    },
    /** 是否勾选表头 */
    selectTableHeader (checked) {
      // 如果checked为true则是勾选了对应的表头
      console.log(checked)
    },
    /** 取消勾选表头 */
    handleCancleSelectHeader () {
      this.czrChecked = false
    },

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值