我用element封装了一个table组件。其中columns是从父组件传过来的
<el-table
:data="tableData"
stripe
border
stripe
fit
style="width: 100%"
class="self-table"
>
<el-table-column
v-for="(column, index) in columns "
:prop="column.prop"
:label="column.label"
:width="column.width"
:key="index"
>
</el-table-column>
</el-table>
现在我想通过直接控制columns,而不用改变上面这个自定义的组件,实现列内容的自定义,比如说单元格里面是一个可编辑的input框,有没有什么方法可以实现呢?
上面的评论好像都没有关注重点,重点是要通过columns来定义列显示,而不必改变自定义的组件本身。看了一下iview的源码,它是将createElement方法传到了columns的render方法里,通过vue的render渲染函数实现了组件内容的自定义。下面把关键代码贴一下。
自定义组件
expand组件
需要自定义时的columns