mur*_*308 1 javascript templates handlebars.js ember.js
我正在通过传递值以在模板中显示的路由模板属性创建emberjs组件。但是我无法通过对象的括号符号在组件模板中访问它。
//route.hbs
{{b-select
options=model.names
valueProp='name'
}}
Run Code Online (Sandbox Code Playgroud)
模型
import Ember from 'ember';
export default Ember.Route.extend({
model() {
return Ember.RSVP.hash({
names: [{name: 'abc'}, {name: 'xyz'}]
});
}
});
Run Code Online (Sandbox Code Playgroud)
组件B-选择HBS文件
<select class="form-control" multiple={{multiple}}>
{{#each options as |option|}}
<option value="{{option}}">{{option[valueProp]}}</option>
{{/each}}
</select>
Run Code Online (Sandbox Code Playgroud)
如果我使用它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
}
});
Run Code Online (Sandbox Code Playgroud)
我得到的错误是
错误:第3行解析错误:... alue =“ {{option}}”> {{option [valueProp]}} <-------------------- --- ^期望'ID','STRING','NUMBER','BOOLEAN','UNDEFINED','NULL','DATA',得到'INVALID'