0

#each と #if ヘルパーに問題があります。まずhttp://handlebarsjs.com/block_helpers.htmlで解決策を探していますが、何も見つかりませんでした。例: 次のオブジェクトがあります。

{
人々:
 [{
    名前:"あ",
    年齢:16歳
    性別:「男の子」
  },{
    名前:"B",
    年齢:14歳
    性別:「男の子」
  },{
    名前:"C",
    年齢:18,
    性別:「男の子」
 }]
};

HTMLで(疑似コード、欲しいのですが、完成させる方法がわかりません。)

    {{#各民族}}
            {{#年齢が 16 歳の場合}}
                {{name}}は運転できます
            {{/もしも}}
            {{#16 歳未満の場合}}
                {{name}}は運転できません
            {{/もしも}}
            {{#16 歳以上の場合}}
                {{name}}は何でもできます
            {{/もしも}}
    {{/各}}

また

    {{#各民族}}
            {{#if equal(name,"A")}}
                {{name}}は運転できます
            {{/もしも}}
            {{#if equal(name,"B")}
                {{name}}は運転できません
            {{/もしも}}
            {{#if equal(name,"c")}}
                {{name}}は何でもできます
            {{/もしも}}
    {{/各}}

入力していただきありがとうございます。

4

3 に答える 3

1

Template.YourTemplate.helpers({})セクション内にヘルパー関数を作成できます。

    Template.YourTemplate.helpers({
        'canDrive' : function(name, age){
        if (age == 16) { return name + " can drive" }
            if (age < 16) { return name + " can't drive"; }
            if (age > 16) { return name + " can't do anything"; }
     },
    })

テンプレートでは、次のように使用できます。

    {{#each peoples}}
        {{canDrive name age}}
    {{/each}}
于 2013-03-01T10:25:28.750 に答える
1

@Prashant と @Oscar に感謝します。問題の解決策が見つかりました。彼らの返信は役に立ちます。同じ質問がある場合は、試してみてください。そしてHandlebars.registerHelperのない解決策があります:

HTMLで:

    
       {{#各民族}}
            {{#if 等しい名前「A」}}{{年齢}}{{性別}}{{/if}}
       {{/各}}
    

クライアントで:


    Template.test.equal = 関数 (a,b) {
      a===b を返します。
    };

于 2013-03-02T05:21:04.633 に答える
1

カスタム式ヘルパーを使用する必要があります。

Handlebars.registerHelper('getDriveStatus', function(age, name) {
  if (age == 16) {
    return name + " can drive"
  }

  if (age < 16) {
    return name + " can't drive";
  }

  if (age > 16) {
    return name + " can't do anything";
  }
});

その後、

{{#each peoples}}
        {{getDriveStatus age name}}
{{/each}}

そして、それはキャラクターの条件も同じです。

于 2013-03-01T09:46:25.820 に答える