iview使用原生html,【Vue】iview的表格单元自定义模版

本文探讨了iview表格组件的自定义模版实现方法,特别是如何通过复选框控制表格列的显示,并解决了RadioGroup组件与Vue数据双向绑定的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用iview的表格组件,准备通过复选框来确定表格的列显示,此时需要iview表格组件的自定义模版

8ab7279793ae004928b721b0726809e3.png

预期:

43ba3d40505daa6cfce8fdd2e27a5e48.png

可是在表格组件的render函数中,不知如何在render后的组件RadioGroup的v-model跟vue的data双向绑定(之前妄想过绑定this,虽然一开始渲染能够渲染出值,但是之后radio的选择均不起作用,或者说radio的currentValue改变了,但是没绑定到data上面去)

//tableCol是Table组件中column对应的数据

this.tableCol.push(commonGenerator.call(this,itemObj));

//现在是使用原生html

let commonGenRadio = function(item){

let colRadio = {};

colRadio.title = item.title;

colRadio.key = item.key;

// colRadio.type = "selection"

colRadio.render = function(htmlFn,param){

let self = this;

return htmlFn('div',

[htmlFn('label',[htmlFn('input',{

domProps:{

type:'radio',

name:item.key

},

}

),htmlFn('span','是')])

,htmlFn('label',[

htmlFn('input',{

domProps:{

type:'radio',

name:item.key

}

}),htmlFn('span','否')],

// [htmlFn('span','否')]

)])

}

// 想要使用组件RadioGroup

// return htmlFn('div',[htmlFn('RadioGroup',{

// props:{

// currentValue:this.nullable

// // value:this.nullable

// // value:this.currentValue

// // 'v-model':this.nullable

// // currentValue:this.nullable

// },

// data(){

// return {

// // 'v-model':this.nullable

// // currentValue : this.nullable

// // currentValue:this.nullable

// }

// },

// // on : {

// // select : function(e){

// // console.log("Radio selected ~")

// // self.value = e.target.value

// // },

// // check :function(){

// // console.log("Radio check ~")

// // self.value = e.target.value;

// // },

// // changed :function(){

// // console.log("Radio checked ~")

// // self.value = e.target.value;

// // }

// // },

// domProps:{

// value:this.currentValue

// }

// },[

// htmlFn('Radio',{

// props:{

// label : "true",

// name:item.key

// },

// on : {

// click:function(e){

// console.log("Radio click ~")

// self.value = e.target.value;

// },

// change :function(e){

// console.log("Radio checked ~")

// self.value = e.target.value;

// }

// },

// },[htmlFn('span','是')]),

// htmlFn('Radio',{

// props:{

// label : "false",

// name:item.key

// }

// },[htmlFn('span','否')])

// ])]);

// }.bind(this);

return colRadio;

}

回答

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值