[解決済み】Handlebarsの'each'ループで親のプロパティにアクセスする
2022-04-07 07:24:40
質問
次のような簡略化されたデータを考えてみましょう。
var viewData = {
itemSize: 20,
items: [
'Zimbabwe', 'dog', 'falafel'
]
};
そして、Handlebarsのテンプレート。
{{#each items}}
<div style="font-size:{{itemSize}}px">{{this}}</div>
{{/each}}
これはうまくいきません。
each
のループでは、親スコープにアクセスできません。少なくとも私が試した限りでは、そうでした。でも、これを実現する方法があればいいなと思います。
解決方法は?
そのためには、2つの有効な方法があります。
親スコープを参照するには
../
の前につけることで
../
をプロパティ名に追加すると、親スコープを参照できるようになります。
{{#each items}}
<div style="font-size:{{../itemSize}}px">{{this}}</div>
{{#if this.items.someKey}}
<div style="font-size:{{../../itemSize}}px">{{this}}</div>
{{/if}}
{{/each}}
を繰り返すことで、何段階も上に行くことができます。
../
. 例えば、2つ上の階層に行くには
../../key
.
詳しくは パスに関するHandlebarsのドキュメント .
ルートスコープの参照は
@root
の前につけることで
@root
をプロパティパスに追加すると、最上位のスコープから下へ移動することができます (次のようになります)。
caballerogさんの回答
).
関連
-
[解決済み】ES6マップオブジェクトをソートすることは可能ですか?
-
[解決済み] Handlebarsの各ヘルパーのインデックスを取得する方法は?
-
[解決済み] JavaScriptで現在のURLを取得する?
-
[解決済み] 私のJavaScriptコードは "No 'Access-Control-Allow-Origin' header is present on requested resource "というエラーを受け取りますが、Postmanはそうならないのはなぜですか?
-
[解決済み] forEachループでasync/awaitを使用する
-
[解決済み] JavaScriptでオブジェクトのキー/プロパティの数を効率的にカウントする方法
-
[解決済み] オブジェクトをメンバーとして、プレーンなJavaScriptオブジェクトをループさせる方法
-
[解決済み] コールバック内で正しい `this` にアクセスする方法
-
[解決済み] JavaScriptの正規表現でマッチしたグループにアクセスするにはどうすればよいですか?
-
[解決済み] JavaScriptオブジェクトのプロパティを一覧表示するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】TypeError: $(...).DataTable は関数ではありません。
-
[解決済み】Javascript:getElementById対getElementsById(両方が別のページで動作する)。
-
[解決済み] Uncaught TypeError: 未定義のプロパティ 'top' を読み込めない
-
[解決済み】Javascriptのコールバック関数がFirefoxで「Callback is not a function」というエラーを投げる
-
[解決済み】JavaScriptのボタンonclickが機能しない
-
[解決済み】DOMException: サポートされているソースが見つからなかったため、読み込みに失敗しました。
-
[解決済み】JavaScriptで相対URLへのリダイレクトを行う
-
[解決済み】 Uncaught Reference Error: stLight is not defined (in Chrome only)
-
[解決済み】ETIMEDOUTエラーの対処方法は?
-
[解決済み】Handlebars.jsの各ループのスコープ外の変数にアクセスする。