如何在Vue中的表中获取行名和列号?

时间:2018-07-18 03:09:25

标签: vue.js columnheader vue-tables-2 rowheader

有什么方法可以使用vue获取表的列号或位置以及行标题吗?

到目前为止,输出是这样的。

enter image description here

生成表的代码:

<table v-if="this.itemList.length > 0">
                    <thead class="ui-table-header-row">
                        <tr>
                            <th class="ui-table-header-cell l-padding"></th>
                            <th class="ui-table-header-cell center"  v-for="item in 31" :key="item.id">{{thisMonth}} July{{ item }}Day</th>

                        </tr>
                    </thead>
                        <template>
                            <tr>
                                <td></td>
                            </tr>
                            <tbody style="border-bottom:#dbb100 1px"  v-for="(item,index) in itemList" :key="index.id" >
                                <tr class="left-align">
                                    <td>{{item.name}}</td>
                                    <td v-for="(item,index) in costList" :key="index.id">{{item.total_work}}</td>
                                </tr>
                             </tbody>
                       </template>
</table>

在此行<td v-for="(item,index) in costList" :key="index.id">{{item.total_work}}</td>上,我必须先检查行标题名称是否与我在item.name中的costList匹配,然后再显示该值。我发现我的期望输出here有点接近,但是我不知道如何使用vue复制它。任何输入表示赞赏。

1 个答案:

答案 0 :(得分:2)

我复制了您包含在其对应的样本中的样本。

new Vue({
  el: "#app",
  data: {
  	days: [1,2,3,4,5],
    itemList: [
    	{
      	name: 'Apple'
      },
      {
      	name: 'Banana'
      },
      {
      	name: 'Carrot'
      }
    ]
  },
  methods: {
  	alert(item_index, day_index) {
    	let item = this.itemList[item_index];
      let day = this.days[day_index];
      
    	alert(item.name + ', Day ' + day);
    }
  }
})
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
<div id="app">
  <table border="1">
      <thead>
          <tr>
            <th>Day/Time</th>
            <th v-for="day in days" width="50">Day {{ day }}</th>
          </tr>
      </thead>
      <tbody>
          <tr v-for="(item, item_index) in itemList" :key="item.name">
            <td>{{ item.name }}</td>
            <td v-for="(day, day_index) in days" @click="alert(item_index, day_index)">Click</td>
          </tr>
      </tbody>
  </table>
</div>

请参阅此JS小提琴: https://jsfiddle.net/eywraw8t/180692/