私は個人的にinput
のidを入力フィールドと現在のコンポーネントID
はので、私の
my-form.hbs
に私はこれを行う:
<label for=(concat elementId '-username')>Username</label>
{{input id=(concat elementId '-username') value=username}}
<label for=(concat elementId '-password')>Username</label>
{{input id=(concat elementId '-password') value=username}}
これは、シンプルかつ効率的です。 elementId
はuniqなのでuniq idを保証します。たぶん、あなたもこれをラップするコンポーネントを書くことができ:
入力とラベル/ component.js
export default Ember.Component.extend({
tagName: '',
inputId: Ember.computed({
get() {
return Ember.guidFor(this)+'-inpudid';
}
})
});
入力とラベル/ template.hbs
<label for=inputId>{{label}}</label>
{{input id=inputId value=value placeholder=label}}
そしてそれを使用してください:
{{input-with-label value=username label="Username"}}
{{input-with-label value=password label="Password"}}
出典
2016-05-03 20:32:30
Lux
知っていますか?ここでこのソリューションの副作用はありますか? – ykaragol
経路上のテンプレートから一意のIDを取得する方法はありますか? – jpoiri
@jpoiriイニシャライザで 'Ember.Controller'を再度開き、' Ember.guidFor(this) 'を呼び出す場所に' uniqId'プロパティを追加することができます。 @yaragol私はあるとは思わない。 – Lux