3

Hogan が多くのロジックをサポートしていないことをドキュメントから理解するようになりましたが、必要なことを行うためにこのテンプレート システムを操作する方法がいくつかあります。

基本的に、これは私が必要とするものです(疑似コードで- people.length >= 1 の場合):

{{#if people.length == 1}}
    <p>Your contact person is {{name}}.</p>
{{else}}
    <p>Your contact people are:</p>
    <ul>
    {{#people}}
        <li>{{name}}</li>
    {{/people}}
    </ul>
{{/if}}

これはHoganテンプレートエンジンでまったく可能ですか?それとも、構成された人物配列にメンバーが1人だけあるかどうかを示す別の変数を送信する必要がありますか?

4

2 に答える 2

2

残念だけど違う。別の変数を設定せずに Hogan でこれを行う方法はありません。これは、(私の意見では) Hogan の大きな欠点の 1 つです。「ロジックがないはずだ」がこの機能の欠如の正当化であることに同意しません。if (true)とはどちらif (a == b)もロジックですが、Hogan では一方を実行でき、もう一方は実行できません。テンプレートにロジックを含めるべきではないことに同意します (そこでは単体テストができないため) が、Hogan/mustache はこの目的に向かって行き過ぎています。Hogan が提供するすべての機能に加えて、比較、ループ制御 (例: )、さらに優れた、読みやすいフィルター構文を提供するswigをお勧めします。これifif (loop.first)、確かに、これは数年前のものです)。

編集: Swig は維持されなくなりました。ただし、Nunjucksは範囲とスタイルの両方で swig に非常に似ています。

于 2015-10-22T14:45:41.410 に答える
0

短い awnser はいけません、ロジックレスであるはずです

同様の問題に関する質問を投げかけました: Hogan.js - 特定のインデックス を持つアイテムを参照してください。

于 2013-11-20T22:03:25.067 に答える