如何在车把模板中使用对象的括号符号?

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'

Pat*_*ssa 5

您可以使用{{get}}助手:

<option value="{{option}}">{{get option valueProp}}</option>