ルートテンプレート属性からemberjsコンポーネントを作成していますが、テンプレートに表示する値を渡しています。しかし、私はオブジェクトのブラケット記法によってコンポーネントテンプレートの中でそれにアクセスすることができません。ハンドルバーテンプレートでオブジェクトのブラケット記法を使用するにはどうすればいいですか?
//route.hbs
{{b-select
options=model.names
valueProp='name'
}}
モデル
import Ember from 'ember';
export default Ember.Route.extend({
model() {
return Ember.RSVP.hash({
names: [{name: 'abc'}, {name: 'xyz'}]
});
}
});
成分b-選択HBSファイル
<select class="form-control" multiple={{multiple}}>
{{#each options as |option|}}
<option value="{{option}}">{{option[valueProp]}}</option>
{{/each}}
</select>
私はoption.name
の代わりoption[valueProp]
を使用する場合、それは完璧に動作します。どのように私は動的に選択するためにプロパティを渡すことができますか?なぜブラケット表記は
コンポーネントJSファイルを動作していない
import Ember from 'ember';
import fallbackIfUndefined from '../utils/computed-fallback-if-undefined';
export default Ember.Component.extend({
multiple: fallbackIfUndefined(false),
options: fallbackIfUndefined(null),
valueProp: fallbackIfUndefined(0),
actions: {
},
didInsertElement() {
//initialize jquery functions
this.$('select').selectpicker({size: 6});
},
willDestroyElement() {
//remove all events
}
});
私は取得していますエラーが
エラーです: ... ALUE = "{{オプション:3行目でエラーを解析します}} "> {{option [valueProp]}} < -----------------------^ 'ID'、 'STRING'、 'NUMBER '、' BOOLEAN '、' UNDEFINED '、' NULL '、' DATA '、' INVALID '
ありがとうございます。それはpefect働いた – murli2308