任意嵌套的数组
问题描述:
https://svelte.technology/guide#each-blocks每个块给出每块以输出一个台状结构的一个例子:任意嵌套的数组
<div class='grid'>
{{#each rows as row, y}}
<div class='row'>
{{#each columns as column, x}}
<code class='cell'>
{{x + 1}},{{y + 1}}:
<strong>{{row[column]}}</strong>
</code>
{{/each}}
</div>
{{/each}}
</div>
的例子要求这种特殊的结构:
{
"columns": [
"foo",
"bar",
"baz"
],
"rows": [
{
"foo": "a",
"bar": "b",
"baz": "c"
},
{
"foo": "d",
"bar": "e",
"baz": "f"
},
{
"foo": "g",
"bar": "h",
"baz": "i"
}
]
}
有一种方法来如果事先不知道这些列,或者甚至更一般地说,如果每一行的长度可能不同,请使用此功能?例如。 (后者):
{
"rows": [
[1],
[2, 3, 4],
[5, 6]
]
}
我没有看到任何地方指示#each
迭代之前,可以“伸进”组件的数据的语法,因为它是。
我错过了什么,或者是#each
这个不可能的内在循环吗?如果不可能,还有其他方法可以做到吗? (例如,你可以使用函数来遍历内部数组,并嵌套一个辅助模板?)
答
我刚刚学习文档在这里,但从我可以告诉你应该能够把row
作为一个的cell
的名单:
<div class='grid'>
{{#each rows as row, y}}
<div class='row'>
{{#each row as cell, x}}
<code class='cell'>
{{x + 1}},{{y + 1}}:
<strong>{{cell}}</strong>
</code>
{{/each}}
</div>
{{/each}}
</div>
的确!请参阅https://svelte.technology/repl/?version=1.6.11&gist=d752ea8039f82f70ff490a87b90ab318中的操作。我不确定你在文档中发现了哪些内容,能否指出我的看法?我链接到的部分没有太多细节,因此对于我来说,您可以使用数据数组中的某些内容,或者使用当前上下文中的某些内容,而不指定它们,有点...... magic-y。 :) – Kev
我实际上并没有从文档中提取特定的文本;我只是推断'#each list as item'可能会创建一个变量'item',并且根据我在其他语言中的知识,我希望这个'item'也可以迭代。通过“学习文档”,我的意思是说,在尝试回答这个问题之前,我对Svelte没有任何经验,只是为了让我知道如果我犯了新手错误。但我很高兴这些建议有帮助! :) – gyre