AlpineJs:在一个循环中循环 - 如何在第二个循环中使用第一个变量?
AlpineJs: Loop in a a loop - How to use the first variable in the second loop?
基本上我正在尝试使用 AlpineJs 生成板球飞镖。它将是一个 table,头部是球员的名字,body 中一些决定性部分的得分。
所以我声明了一些 Alpine.datas :
Alpine.data('data', () => ({
segments: ['20', '19', '18',],
players: [
{
name: 'Yann',
touched20: 0,
touched19: 0,
touched18: 0,
},
{
name: 'Morgan',
touched20: 0,
touched19: 0,
touched18: 0,
},
],
}));
所以,对于每个片段,我需要一行,对于每个玩家,我需要一列。
但是我不知道如何使用第一个循环变量'segment'来定义这个段对应的每个玩家的分数。
在第一次迭代中,我有变量 segment = “20”,在播放器循环中我需要得到“player.touched20”,所以在第二次迭代中我有 segment = “19”,我需要得到“player.touched20”。感动19”。对于不同的细分市场将是相同的。
我的结果是 x-text="player.touched${segment}
" returns 一个字符串,但不是我的高山数据的值。
所以,这是我的 html :
<div x-data="data">
<table>
<thead>
<tr>
<th>///</th>
<template x-for="player in players">
<th x-text="player.name"></th>
</template>
</tr>
</thead>
<tbody>
<template x-for="segment in segments">
<tr>
<td x-text="segment"></td>
<template x-for="player in players">
<td x-text="`player.touched${segment}`"></td>
</template>
</tr>
</template>
</tbody>
</table>
</div>
如果有人有想法或解决方案,那将是一个非常大的帮助。
谢谢
仅对动态属性访问部分使用字符串文字语法:
<td x-text="player[`touched${segment}`]"></td>
基本上我正在尝试使用 AlpineJs 生成板球飞镖。它将是一个 table,头部是球员的名字,body 中一些决定性部分的得分。
所以我声明了一些 Alpine.datas :
Alpine.data('data', () => ({
segments: ['20', '19', '18',],
players: [
{
name: 'Yann',
touched20: 0,
touched19: 0,
touched18: 0,
},
{
name: 'Morgan',
touched20: 0,
touched19: 0,
touched18: 0,
},
],
}));
所以,对于每个片段,我需要一行,对于每个玩家,我需要一列。
但是我不知道如何使用第一个循环变量'segment'来定义这个段对应的每个玩家的分数。
在第一次迭代中,我有变量 segment = “20”,在播放器循环中我需要得到“player.touched20”,所以在第二次迭代中我有 segment = “19”,我需要得到“player.touched20”。感动19”。对于不同的细分市场将是相同的。
我的结果是 x-text="player.touched${segment}
" returns 一个字符串,但不是我的高山数据的值。
所以,这是我的 html :
<div x-data="data">
<table>
<thead>
<tr>
<th>///</th>
<template x-for="player in players">
<th x-text="player.name"></th>
</template>
</tr>
</thead>
<tbody>
<template x-for="segment in segments">
<tr>
<td x-text="segment"></td>
<template x-for="player in players">
<td x-text="`player.touched${segment}`"></td>
</template>
</tr>
</template>
</tbody>
</table>
</div>
如果有人有想法或解决方案,那将是一个非常大的帮助。 谢谢
仅对动态属性访问部分使用字符串文字语法:
<td x-text="player[`touched${segment}`]"></td>