2016-10-20 11 views
4

これは、私たちがinput-fieldと呼んだハンドルバー部分です。
私たちは、前のページで選択した参加者の数に基づいて、名前と電子メールフィールドを動的に作成しようとしています。Handlebars変数を連結して部分的に渡す方法

<div class="form-group {{errors.fullName.class}}" id="fullName"> 
    <label for="full-name">Your full name</label> 
    <p class="message-error">{{errors.fullName.message}}</p> 
    <input type="text" class="form-control" name="fullName" value="{{values.fullName}}"> 
</div> 

これらのフォームフィールドのいずれかが満たされていないと、エラーメッセージを作成して表示する機能がいくつかあります。
{{errors.fullName.class}}の代わりに、{{errors.fullName{{this}}.class}}が必要です。

ハンドルバーでは、このようにハンドルバーの中の別のハンドルバー変数を参照することはできません。

それはすべて、各ループ内です:

{{#each otherOccupiers}} 
    {{> input-field}} 
{{/each}} 

誰もが多分ハンドルヘルパー関数またはこの連結を実行するための他の方法を書き込むことによって、この効果を達成する方法についてのアイデアを持っています。

+0

'{{this}}'は '{{errors.full名前{{this}}。class}} '? – 76484

+0

私たちは、それぞれのループで 'otherOccupier'がどれ位だったかに基づいて評価することを評価していました。例: '{{errors.fullName2.class}}'または '{{errors.fullName3.class}} ' これについてもう少し考えてみて、このように論理を論理的に入れてはいけないこれは、ハンドルバーにそれをさせるのが難しいと思われる理由です。 – Katpas

+0

あなたが達成しようとしていることは非常に不明です。 – 76484

答えて

1

私はデータを想定していますが、あなたがハンドルバーに渡しているオブジェクトを、このようなものになります。

{ 
    errors: { 
    otherOccupiers: [ 
     "A" : { 
     fullName: { 
      class: "error-class", 
      message: "error-message" 
     } 
     } 
     "B" : { 
     fullName: { 
      class: "error-class", 
      message: "error-message" 
     } 
     } 
    ] 
    } 
} 
:あなたはこのような何かを見て、あなたのデータオブジェクトの構造を変更する場合は

{ 
    otherOccupiers: ["A", "B"], 
    errors: { 
    fullName: { 
     class: "error-class", 
     message: "error-message" 
    } 
    } 
} 

次に、このように各ループを行うことができます:

{{#each errors.otherOccupiers}} 
    <div class="form-group {{this.fullName.class}}" id="fullName"> 
    <label for="full-name">Your full name</label> 
    <p class="message-error">{{this.fullName.message}}</p> 
    <input type="text" class="form-control" name="fullName"> 
    </div> 
{{/each}} 
関連する問題