如何在 Element UI table 行中正确设置链接(应该很简单?)
How to correctly setup links in an Element UI table row (Should be easy?)
我在 Element UI 中获得了用户项目的 table。由于 Element UI 不适用于 <tr></tr>
我对如何处理这个问题感到有点困惑。 table 的目的是显示用户的项目并对其执行基本的 CRUD 操作。这意味着对于每一行,一个唯一的 ID 应该显示为一个名称,并且对于他们应该让用户 edit/delete 具有唯一 ID 的特定项目的操作。在正常情况下 HTML table 我希望这样:
<table class="table table-hover">
<thead class="table-header">
<tr>
<th>Name</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<tr
v-for="project in personData"
:key="project._id"
>
<td>{{ project._id }}</td>
<td>
<el-button
type="text"
size="mini"
@click="onLoad"
>Load <i class="el-icon-upload2" /></el-button>
<router-link
:to="{name: 'editproject', params: { id: project._id }}"
tag="span"
>
<el-button
type="text"
size="mini"
> Edit <i class="el-icon-edit" /></el-button>
</router-link>
<el-button
type="text"
size="mini"
@click="deleteTemplate(project._id)"
>Delete <i class="el-icon-delete" /></el-button>
</td>
</tr>
</tbody>
</table>
该代码生成以下内容 table
可以单击编辑和删除按钮,这将推送到具有该行给定 ID 的编辑路径。
Element UI tables 将 table 数据绑定到主 <el-table>
元素,然后您可以使用 props 指定应该在行中显示的数据.所以我让它与 id 一起工作。我所要做的就是用 _id
的道具定义一个 <el-table-column>
。我的元素 UI table 目前看起来像这样:
<el-table
v-loading="loading"
:data="personData"
size="small"
@cell-mouse-enter="onHover"
>
<el-table-column
label="Name"
prop="_id"
>
</el-table-column>
<el-table-column
label="Actions"
width="280"
>
<el-button
type="text"
size="mini"
@click="onLoad"
>
Load
<i class="el-icon-upload2" />
</el-button>
<router-link
:to="{name: 'editproject', params: { id: _id }}"
tag="span"
>
<el-button
type="text"
size="mini"
> Edit <i class="el-icon-edit" /></el-button>
</router-link>
<el-button
type="text"
size="mini"
>
Download
<i class="el-icon-download" />
</el-button>
<el-button
type="text"
size="mini"
@click="onDelete(scope.row.id)"
>
Delete
<i class="el-icon-delete" />
</el-button>
</el-table-column>
</el-table>
该代码生成以下内容 table
编辑按钮应该 link 具有正确的 _id
。但是在 table 中执行任何循环以获取与 edit
按钮对应的正确 ID 都会导致该编辑按钮显示两次。这是预期的结果。不幸的是,我似乎无法解决这个简单的问题...任何人都可以帮助我解决这个问题吗?
通过使用列的插槽,您可以访问整行:
根据 element-ui 文档 (https://element.eleme.io/#/en-US/component/table):
Custom content for table columns. The scope parameter is { row, column, $index }
<template>
<el-table v-loading="loading" :data="personData" size="small" @cell-mouse-enter="onHover">
<el-table-column label="Name" prop="_id"></el-table-column>
<el-table-column label="Actions" width="280">
<template v-slot:default="table">
<router-link :to="{name: 'editproject', params: { id: table.row._id }}" tag="span">
<el-button type="text" size="mini">
Edit
<i class="el-icon-edit" />
</el-button>
</router-link>
</template>
</el-table-column>
</el-table>
</template>
我在 Element UI 中获得了用户项目的 table。由于 Element UI 不适用于 <tr></tr>
我对如何处理这个问题感到有点困惑。 table 的目的是显示用户的项目并对其执行基本的 CRUD 操作。这意味着对于每一行,一个唯一的 ID 应该显示为一个名称,并且对于他们应该让用户 edit/delete 具有唯一 ID 的特定项目的操作。在正常情况下 HTML table 我希望这样:
<table class="table table-hover">
<thead class="table-header">
<tr>
<th>Name</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<tr
v-for="project in personData"
:key="project._id"
>
<td>{{ project._id }}</td>
<td>
<el-button
type="text"
size="mini"
@click="onLoad"
>Load <i class="el-icon-upload2" /></el-button>
<router-link
:to="{name: 'editproject', params: { id: project._id }}"
tag="span"
>
<el-button
type="text"
size="mini"
> Edit <i class="el-icon-edit" /></el-button>
</router-link>
<el-button
type="text"
size="mini"
@click="deleteTemplate(project._id)"
>Delete <i class="el-icon-delete" /></el-button>
</td>
</tr>
</tbody>
</table>
该代码生成以下内容 table
可以单击编辑和删除按钮,这将推送到具有该行给定 ID 的编辑路径。
Element UI tables 将 table 数据绑定到主 <el-table>
元素,然后您可以使用 props 指定应该在行中显示的数据.所以我让它与 id 一起工作。我所要做的就是用 _id
的道具定义一个 <el-table-column>
。我的元素 UI table 目前看起来像这样:
<el-table
v-loading="loading"
:data="personData"
size="small"
@cell-mouse-enter="onHover"
>
<el-table-column
label="Name"
prop="_id"
>
</el-table-column>
<el-table-column
label="Actions"
width="280"
>
<el-button
type="text"
size="mini"
@click="onLoad"
>
Load
<i class="el-icon-upload2" />
</el-button>
<router-link
:to="{name: 'editproject', params: { id: _id }}"
tag="span"
>
<el-button
type="text"
size="mini"
> Edit <i class="el-icon-edit" /></el-button>
</router-link>
<el-button
type="text"
size="mini"
>
Download
<i class="el-icon-download" />
</el-button>
<el-button
type="text"
size="mini"
@click="onDelete(scope.row.id)"
>
Delete
<i class="el-icon-delete" />
</el-button>
</el-table-column>
</el-table>
该代码生成以下内容 table
编辑按钮应该 link 具有正确的 _id
。但是在 table 中执行任何循环以获取与 edit
按钮对应的正确 ID 都会导致该编辑按钮显示两次。这是预期的结果。不幸的是,我似乎无法解决这个简单的问题...任何人都可以帮助我解决这个问题吗?
通过使用列的插槽,您可以访问整行:
根据 element-ui 文档 (https://element.eleme.io/#/en-US/component/table):
Custom content for table columns. The scope parameter is { row, column, $index }
<template>
<el-table v-loading="loading" :data="personData" size="small" @cell-mouse-enter="onHover">
<el-table-column label="Name" prop="_id"></el-table-column>
<el-table-column label="Actions" width="280">
<template v-slot:default="table">
<router-link :to="{name: 'editproject', params: { id: table.row._id }}" tag="span">
<el-button type="text" size="mini">
Edit
<i class="el-icon-edit" />
</el-button>
</router-link>
</template>
</el-table-column>
</el-table>
</template>