鍍金池/ 問答/HTML/ vue.js中如何封裝一個iview中的table組件

vue.js中如何封裝一個iview中的table組件

下面是iview 的table


<template>

<Table :columns="columns1" :data="data1"></Table>

</template>
<script>

export default {
    data () {
        return {
            columns1: [
                {
                    title: 'Name',
                    key: 'name'
                },
                {
                    title: 'Age',
                    key: 'age'
                },
                {
                    title: 'Address',
                    key: 'address'
                }
            ],
            data1: [
                {
                    name: 'John Brown',
                    age: 18,
                    address: 'New York No. 1 Lake Park',
                    date: '2016-10-03'
                },
                {
                    name: 'Jim Green',
                    age: 24,
                    address: 'London No. 1 Lake Park',
                    date: '2016-10-01'
                },
                {
                    name: 'Joe Black',
                    age: 30,
                    address: 'Sydney No. 1 Lake Park',
                    date: '2016-10-02'
                },
                {
                    name: 'Jon Snow',
                    age: 26,
                    address: 'Ottawa No. 2 Lake Park',
                    date: '2016-10-04'
                }
            ]
        }
    }
}

</script>


上面columns1中單項里面的key是如何和下面data中的 key聯(lián)系起來的
比如: columns1中的第一項 key : 'name' 可以和下面的data 中的 name: 'John Brown'聯(lián)系起來,會在table里面 在一列顯示,我想封裝一個和這個table差不多的組件 ,能實現(xiàn)最簡單的數(shù)據(jù)展示就行 ,但看不懂這個組件的js是怎么實現(xiàn)的

===================================

clipboard.png

想解決的問題是 (上圖)
傳入的 對象 student名字 不能和 灰色 表頭(學生姓名) 對應起來
上面 的效果 是直接錯位了

怎么才能做到和iview的table 一樣 ,不管 后臺傳入何種順序包含的對象 ,在table中都能對應起來

回答
編輯回答
護她命

culumns是生成列數(shù)據(jù)的,首先是表頭,這里不說多表頭的事,那需要另加屬性,表頭里面的th根據(jù)culumns循環(huán)生成,沒用就是里面的title屬性。

其次是主體部分,tr根據(jù)data循環(huán)生成,里面的td還是根據(jù)culumns循環(huán)生成,里面的內(nèi)容是data里的數(shù)據(jù),即

data[i][culumns[j].key]
2017年2月21日 15:27
編輯回答
負我心

其實只需要簡單的列表就可以完成,名字順序是根據(jù)數(shù)組的位置決定的,然后渲染到列表中,用到的指令v-if,也可以添加自定義指令,加class或者其他

2017年9月2日 03:27