izz*_*tov 6 javascript vue.js vue-component vuejs2
有一个表循环并输出来自 API 的数据。我在表格内添加了一个按钮。当你点击它时,它应该发送被点击按钮的id,直到它收到需要打印的函数的数据,它应该在加载中。这是我的代码。
<table id="customers">
<tr>
<th>{{$t('message.numberReport')}}</th>
<th>{{$t('message.periodFrom')}}</th>
<th>{{$t('message.periodTo')}}</th>
<th>{{$t('message.printButton')}}</th>
</tr>
<tr v-for="(item,index) in getReportInfo" :key="index">
<td>{{ item.id }}</td>
<td>{{ item.periodFrom }}</td>
<td>{{ item.periodTo }}</td>
<td>
<v-btn
class="primary"
:loading="loading"
:disabled="loading"
@click="fetchGetReportDetailed(item)"
>{{ $t('message.printButton')}}</v-btn>
</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
但是当我单击特定按钮时,所有按钮都进入加载模式。我如何解决它?任何建议将不胜感激。这是视觉示例
index列表中的项目。例如,您可以在数据中注册一个新变量indexClicked 。
data () {
return {
// Some predefined value, 0 isn't good because index can be 0.
indexClicked: undefined // Some predefined value
}
}
Run Code Online (Sandbox Code Playgroud)
当您单击按钮时,您可以发送index值:
<td>
<v-btn class="primary"
:loading="loading && indexClicked === index"
:disabled="loading && indexClicked === index"
@click="fetchGetReportDetailed(item, index)">
{{ $t('message.printButton') }}
</v-btn>
</td>
Run Code Online (Sandbox Code Playgroud)
而在你的fetchGetReportDetailed(item, index)方法,你需要分配index给this.indexClicked这样的:
fetchGetReportDetailed (item, index) {
// Your code
this.indexClicked = index;
}
Run Code Online (Sandbox Code Playgroud)
这应该有效。但如果您需要更多信息,请提供更多代码。
请注意,如果您遇到多个条件的问题,:disable您可以创建一个方法,该方法将根据条件返回 true 或 false loading && this.indexClicked === index。
祝你好运!
| 归档时间: |
|
| 查看次数: |
4372 次 |
| 最近记录: |