使用Ember Power选择以设置对象属性的查询参数

时间:2018-04-13 10:00:06

标签: javascript ember.js ember-power-select

我正在尝试使用Power Select创建一个下拉菜单,当选择一个选项时,会创建该选项的属性查询参数。

我的大部分下拉框都在工作,但是当我设置了'conid'查询参数,无论我尝试什么,都会创建Param为?conID =%5Bobject%20Object%5D。

以下是当前的下拉菜单:

          {{#power-select
  placeholder="Select a Consultant"
  searchPlaceholder="Select a Consultant"
  selected="id"
  searchField="name"
  options=selectData
  onchange=(action (mut conID))
  as |selectData|
}}
  {{selectData.name}}
{{/power-select}}

选项正确加载。我已经尝试过选择'的一些变体。价值包括

selected=selected
selected=selectData.id
selected="id"

没有成功。 selectData中的对象具有以下结构:

selectData [ {name: 'string', value: number}]

请注意,我可以使用原生选择框创建此功能,如下所示:

  <select class="form-control" onchange={{action (mut coc) value="target.value"}}>
            <option value="">- Select an Optionn -</option>
          {{#each option as |option|}}
          <option value="{{option.id}}">{{option.name}}</option>
          {{/each}}
          </select>

1 个答案:

答案 0 :(得分:1)

你应该处理power-update事件的更新事件,以从所选power-select元素的JSON对象中获取id。您的template.hbs应该是:

{{#power-select
  placeholder="Select a Consultant"
  searchPlaceholder="Select a Consultant"
  selected=selected
  searchField="name"
  options=selectData
  onchange=(action 'handleUpdate')
  as |selectData|
}}
  {{selectData.name}}
{{/power-select}}

和相应的component.js应该是:

actions:{
    handleUpdate(val){
        this.set('selectedElement', val);
        if(val && val.id){
            this.set('conID', val.id);
        }
        else{
            this.set('conID', undefined);
        }
    }
}