1. ホーム
  2. javascript

[解決済み] mustache.jsでif/elseを実現するにはどうしたらいいですか?

2022-02-19 23:39:38

質問内容

マスタッシュでこれを行う方法がわからないのは、かなり奇妙な気がします。サポートされているのでしょうか?

これは私の悲しい試みです。

    {{#author}}
      {{#avatar}}
        <img src="{{avatar}}"/>
      {{/avatar}}
      {{#!avatar}}
        <img src="/images/default_avatar.png" height="75" width="75" />
      {{/avatar}}
    {{/author}}

これは明らかにおかしいのですが、ドキュメントにはこのようなことは書かれていません。else"という言葉も出てきません :(

また、ヒゲはなぜこのようなデザインなのでしょうか?こういうのは良くないとされているのでしょうか?モデル自体にデフォルト値を設定することを強制しようとしているのでしょうか?それができない場合はどうなんでしょうか?

解決方法は?

これは、Mustacheでif/elseを行う方法です(完全にサポートされています)。

{{#repo}}
  <b>{{name}}</b>
{{/repo}}
{{^repo}}
  No repos :(
{{/repo}}

あるいは、あなたの場合

{{#author}}
  {{#avatar}}
    <img src="{{avatar}}"/>
  {{/avatar}}
  {{^avatar}}
    <img src="/images/default_avatar.png" height="75" width="75" />
  {{/avatar}}
{{/author}}

ドキュメントで反転部分を探す。 https://github.com/janl/mustache.js#inverted-sections