使用 Ember 幂 Select 设置对象 属性 的查询参数

Using Ember Power Select to set query param of object property

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

我的大部分下拉框都在工作,但是当我设置 'conID' 查询参数时,无论我尝试什么,它都会将参数创建为 ?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
selected=selectData.id
selected="id"

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

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

请注意,我可以使用本机 select 框创建此功能,如下所示:

  <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>

您应该自己处理 power-select 的更新事件,以从 selected 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);
        }
    }
}