これまでmustache
のところは素晴らしいですが、ロジックレスは機能していないようです。ユーザーの電子メールと名前を含めることができるテンプレートをレンダリングする必要があるとします。
電子メールと名前の両方が存在する場合、レンダリング結果は次のようになります。
<a href="mailto:EMAIL">NAME</a>
電子メールが存在するが名前が存在しない場合、結果は次のようになります。
<a href="mailto:EMAIL">EMAIL</a>
名前だけが存在する場合、テンプレートは次のようにレンダリングされます。
NAME
だから今、私は次のようなことをしなければなりません:
{{#email}}<a href="mailto:{{email}}">{{#name}}{{name}}{{/name}}{{^name}}{{email}}{{/name}}</a>{{/email}}{{^email}}{{name}}{{/email}}
これはとても醜いです!条件はこれだけ!さらに必要な場合はどうすればよいですか?で同じことを行う別の方法があるべきだと思いmustache
ます。それともすべきではありませんか?
ですから、口ひげの開発者は、ロジックレスであることは良いことだと考えていますが、私には反論があります。ほとんどの場合、テンプレート内の変数をチェックする必要があります (ほとんどの場合、存在のみをチェックする必要があります)。だから私は次のようなことをします:
{% if email %}{{ email }}{% else %}{{ name }}{% endif %}
そして、これははるかに包括的に見えます
{{#email}}{{email}}{{/email}}{{^email}}{{name}}{{/email}}
ではない?
私name
もチェックする必要がある場合:
{% if email %}{{email}}{% elif name %}{{name}}{% else %}Anonymous{% endif %}
対
{{#email}}{{email}}{{/email}}{{^email}}{{#name}}{{name}}{{/name}}{{^name}}Anonymous{{/name}}{{/email}}
いいえの場合、でテンプレートをレンダリングするための別のテンプレート ライブラリを提案していただけますjavascript
か? (jQuery-plugin) との統合jQuery
は利点ですが、必須ではありません。自分で行うことができます。
ありがとう。