2つの並列配列(同じサイズ)を持つテンプレートを実行していて、両方の配列の項目を並行してリストしたいのですが、どのように範囲内のインデックスを使用しますか?html/templateで範囲内のインデックスを使用して並列配列を反復処理する方法は?
これは明らかに動作しません:
事前に定義された global template functionsの{{range $i, $e := .First}}$e - {{index .Second $i}}{{end}}
2つの並列配列(同じサイズ)を持つテンプレートを実行していて、両方の配列の項目を並行してリストしたいのですが、どのように範囲内のインデックスを使用しますか?html/templateで範囲内のインデックスを使用して並列配列を反復処理する方法は?
これは明らかに動作しません:
事前に定義された global template functionsの{{range $i, $e := .First}}$e - {{index .Second $i}}{{end}}
一つはindex
です。
index
引数の後に最初の引数のインデックス付け結果を で返します。したがって、index x 1 2 3
は、Go構文では、x[1][2][3]
です。各インデックス項目は、map
,slice
、またはarray
である必要があります。
あなたは正しい方向にあります。唯一の問題は、range
ブロック内でdot
が再割り当てされたという事実を考慮していないことです。
実行が開始されると、$
を実行するために渡されたデータを引数に設定され、そのために私たちは
以下、それはの開始値に、である必要がありますので、あなたは、元のドットに取得する必要がありますドット。だから、
あなたが行うことができるはず(テンプレートで起こっている他には何もないと仮定した場合):個人的に
{{range $i, $e := .First}}$e - {{index $.Second $i}}{{end}}
しかし、私は複数のスライスを受け入れzip
と呼ばれるテンプレート関数を作成しますと、各値のペアのスライスを返します。それはあなたのテンプレートでもっときれいに見え、たぶんどこかで再利用されるでしょう。