ハンドルバーは、JSライブラリですので、なぜそれは、次のような data.array.[0]
代わりの data.array[0]
ハンドルバーは、インデックスで配列にアクセスするためにドットブラケット表記を使用するのはなぜですか?
0
A
答えて
2
角括弧は「segment-literal notation」です:あなたが見ることができるように
{{#each articles.[10].[#comments]}}
<h1>{{subject}}</h1>
<div>
{{body}}
</div>
{{/each}}
:
有効な識別子ではありませんプロパティを参照するには、セグメント・リテラル表記を使用することができます
#comments
のように、式パス内の裸の識別子として問題になる可能性のある識別子を「引用」するには、角括弧を使用します。問題のある識別子のこのカテゴリには、パスの終わりに来るときに(配列のインデックスとして)整数である識別子も含まれます。 this answer on How do I access an access array item by index in handlebars?なぜ問題のある識別子(たとえば、
foo[#comments]
)に角括弧構文を使用すると、ドットを完全に取り除かなかったのか、私は確かに言えませんが、パスのセグメントが常にピリオドで区切られるようにするための可読性。
+0
これは私が探していた答えです。書面と説明に感謝します。 – bigsandwich
0
Handlebars.js
がMustache
ライブラリの拡張版である配列のインデックス値の前にドットを必要としません。私はそれがMustache
と同様の文法を使用していると思いますので、このドット表記は何とかそこから来なければなりません。
関連する問題
- 1. リスト<T>にアクセスするためにインデックスのような配列インデックスを使用できますか?
- 2. Breezeで行列を表すために配列が使用されるのはなぜですか?
- 3. jQuery Objectから配列インデックス演算子を使用してHTMLElementにアクセスできるのはなぜですか?
- 4. インデックスで直接配列にアクセスできないのはなぜですか?
- 5. 流星のハンドルバー:普通の配列にアクセスするには?
- 6. なぜこの配列にインデックスでアクセスできないのですか?
- 7. Typescript:クラスからアイテムを取得するために配列表記を使用
- 8. ハンドルバーでVue.jsを使用するには?
- 9. 可変インデックスで配列にアクセスする
- 10. 配列の位置にアクセスするためにシフトが必要なのはなぜですか?
- 11. numpy配列をpandasデータフレームに変換するために使用するインデックスは何ですか?
- 12. ハンドルバーのヘルパーの出力から配列にアクセスする
- 13. for..inループのオブジェクトプロパティにアクセスするために配列表記法を使用する目的は何ですか?
- 14. ドッカーマシンを使用すると、ジュピターノートブックにアクセスするためにパスワードが必要なのはなぜですか?
- 15. ネストされたハンドルバーのループでインデックスを使用する
- 16. PHPで正規表現または配列インデックスを使用してJSON要素にアクセスする方法
- 17. 値ではなく配列のインデックスをロギングする(JavaScript) - なぜですか?
- 18. ドット表記の代わりにJavaScriptオブジェクトメンバーにアクセスするために '[]'表記を使用する理由は何ですか?
- 19. 行列内の空のセルを表現するために使用される記号は何ですか?
- 20. オブジェクトのプロパティにアクセスするためのブラケット表記はピリオド表記よりも遅いですか?
- 21. RequireJSでハンドルバーにプリコンパイルされたテンプレートを使用するには?
- 22. JavaScriptで配列のインデックスを記録する方法は?
- 23. 配列のオブジェクトプロパティが値に正しくアクセスするのはなぜですか?
- 24. 配列表記を使用して値にアクセスすることなくオブジェクトの値のタイプを定義するにはどうすればよいですか?
- 25. ハンドルバーで連想配列名@typeを使用するにはどうすればよいですか?
- 26. ハンドルバーのヒゲの中でキーで配列/オブジェクト変数にアクセスする
- 27. 私のメソッドでNSMutable配列にアクセスできないのはなぜですか?
- 28. グローバルスコープで配列の添字にアクセスできないのはなぜですか?
- 29. Rubyで各doループを使用して配列を埋めることができないのはなぜですか?私は配列を埋めるために各doループを使用する場合はそのまま、それはアレイを残す
- 30. ハンドルバー#each配列はヘルパーです
これは有効なJS構文ではないため、JSのプリプロセッサでなければなりません。 – Barmar
私はそれをプリプロセッサの代わりにライブラリと呼ぶのは間違っているかもしれませんが、この 'ドットブラケット'表記を使うデザインの選択肢はまだ分かりません – bigsandwich