element中的表格字段是写死的,如何灵活的传进指定字段

element中的表格字段是写死的,如何灵活的传进指定字段?比如我知道后端会返回一些key和valu值,我想直接替换label和Prop中的字段。我用了v-for便利了prop绑定的字段,发现这么做行不通。

<template>
    <el-table
      :data="tableData"
      style="width: 100%">
      <el-table-column
        prop="date"
        label="日期"
        width="180">
      </el-table-column>
      <el-table-column
        prop="name"
        label="姓名"
        width="180">
      </el-table-column>
      <el-table-column
        prop="address"
        label="地址">
      </el-table-column>
    </el-table>
  </template>

  <script>
    export default {
      data() {
        return {
          tableData: [{
            date: '2016-05-02',
            name: '王小虎',
            address: '上海市普陀区金沙江路 1518 弄'
          }, {
            date: '2016-05-04',
            name: '王小虎',
            address: '上海市普陀区金沙江路 1517 弄'
          }, {
            date: '2016-05-01',
            name: '王小虎',
            address: '上海市普陀区金沙江路 1519 弄'
          }, {
            date: '2016-05-03',
            name: '王小虎',
            address: '上海市普陀区金沙江路 1516 弄'
          }]
        }
      }
    }
  </script>
阅读 7.3k
3 个回答

借用楼上的写法 异步的话 需要先判断data是否有值:

<el-table-column v-for="(item,index) in data" :key='index' v-if="data.length>0" :prop="item.prop" :label="item.label" :width='item.width'></el-table-column>

如果没有插槽可以使用v-for,复杂的话建议使用render函数

data = [
    {prop:'data',label:'日期',width:'180'},
    {prop:'name',label:'姓名',width:'180'},
    {prop:'address',label:'地址'}
]

<el-table-column v-for="(item,index) in data" :key='index' :prop="item.prop" :label="item.label" :width='item.width'></el-table-column>
用for循环表格数据就行<el-table-column v-for="(item,index) in list" :key='index' :prop="item.prop" :label="item.label"></el-table-column>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题