Handlebars.jsでは@index
、テンプレートに渡すオブジェクトの別の並列配列に添字を付けるにはどうすればよいですか?
たとえば、次のように設定されたオブジェクトがあるとします。
var table = {
cols : [
{ name: "Column 1" },
{ name: "Column 2" },
{ name: "Column 3", highlighted: true }
],
rows : [
{
label: "Row 1",
data: [
{ val: 5 },
{ val: 3 },
{ val: 8 }
]
},
{
label: "Row 2",
data: [
{ val: 8 },
{ val: 4 },
{ val: 0 }
]
}
]
};
列内のセルにスタイルを適用するために列が強調表示されているかどうかを確認するために@index
fromループを使用できるようにする必要がありますが、 Handlebars.jsでは添字演算子での使用が許可されていないようです。{{#each rows}}{{#each data}}
@index
例えば
{{@index}} <!-- Index of current rows.data is 2. -->
{{#if ../../cols.[@index].highlighted }}
<!-- Never Executed -->
{{/if}}
{{#if ../../cols.[2].highlighted }}
<!-- Executes -->
{{/if}}
これはサポートされていませんか? 私は何か間違ったことをしていますか?これを簡単に機能させるにはどうすればよいですか?
jsfiddle.net に例を投稿しました。