二重中括弧構文は、ハンドルバーでヘルパーまたはパスを呼び出します。ただし、ヘルパー内から、サブ式を呼び出すためにそれらを使用することはできません。代わりに、括弧を使用してサブ式を呼び出す必要があります。例えば:
違う
{{input value={{uppercase user.name}} }}
正しい
{{input value=(uppercase user.name) }}
ハンドルバーでは、リテラル値を動的な値で補間することは許可されていないためです。目的を達成するには、カスタム ヘルパーを使用する必要があります。Ember 1.3.2 にはconcat
ヘルパーが付属しているので、次のように使用できます。
{{input class=(concat "form-control " color) value=property.value type="text"}}
「form-control」クラスの最後にあるスペースに注意してください。これは、concat ヘルパーが現時点ではセパレーターを追加しないために必要です。
古いバージョンを使用している場合は、join-params
これを処理するヘルパーを作成できます。
app/helpers/join-params.js
import Ember from 'ember';
export function joinParams(params) {
return params.join(' ');
}
export default Ember.HTMLBars.makeBoundHelper(joinParams);
そして、「form-control」クラスの最後にスペースを追加せずに使用します
{{input class=(join-params "form-control" color) value=property.value type="text"}}