2016-09-03 8 views
0

私はこれを行う方法を見つけることができないと思いますし、サブ表現やさまざまな答えをStackOverflowに投稿しました - しかし、それらはすべて私が知っていると仮定しているようですキー私は事前に使用しています。ハンドルバーのヒゲの中でキーで配列/オブジェクト変数にアクセスする

私は、次のオブジェクトがあります。私のハンドルバーテンプレートで

など
{ 
    fields: { 
     1: { 
      complete: 1, 
      submitted: 0 
     }, 
     2: { 
      complete: 1, 
      submitted: 0 
     } 
} 

など

を、私は、オブジェクトの配列をループしています。その配列内の各オブジェクトは、field_idキーを持ちます。このキーは、上記の例で1または2に一致する番号です。

ループされている現在のfield_idに基づいて、上記の配列構造の変数にアクセスする必要があります。私が試した:

{{fields[(field_id)].complete}}

{{fields[{{field_id}}].complete}}

{{fields.(field_id).complete}}

{{fields.({{field_id}}).complete}}

そしてそれらのどれも動作しません。

これを行う方法はありますか?

+0

'どこから来るのfield_id'のでしょうか? – 76484

答えて

1

。代わりに、私はwith block helperと提携して、既存のLookup helperを使用します。

{{#with (lookup fields field_id) as |field|}} 
    {{field.complete}} 
{{/with}} 

はまたあなたがルックアップヘルパーを使用することができsubexpression

{{lookup (lookup fields field_id) 'complete'}} 
+0

ここで私のカスタムヘルパーよりもずっと後者のソリューションを使用しました。大変ありがとう! – gazchap

0

私はカスタムヘルパーを登録することで、この作品を作った:

Handlebars.registerHelper('getfield', function (data, field_id, key) { 
    var val = (data[ field_id ]) ? data[ field_id ][ key ] : ''; 
    return val; 
}); 

し、その後で私のテンプレートでこれを利用した:私は このためカスタムヘルパーを作成しないでしょう

{{getfield fields field_id 'complete'}} 
関連する問題