ember-power-select 中的自定义选项和第一个选项

Custom and first options in ember-power-select

我正在使用 Ember-power-select-with-create 使自定义 selection 在我的下拉菜单中成为可能。

这是 .hbs 文件中的 power-select 部分。

{{#power-select-multiple-with-create
        options=options //array for prefill values
        selected=offer.offer //is where we save it to (offer is the model and has an array named offer)
        onchange=(action (mut offer.offer)) //default onchange for prefill options
        onfocus=(action "handleFocus")
        onblur=(action "handleBlur")
        oncreate=(action "createOffer" offer.offer) //This calls "createOffer"
        buildSuggestion=suggestion
      as |offer|}}
        {{offer}}
      {{/power-select-multiple-with-create}}

我的 .js 文件中的 "createOffer" 函数如下所示:
它传递了两个值:selected 即 offer.offer 和 searchText 这是用户尝试添加的输入。

createOffer(selected, searchText)
{
  if (selected == null)
  {
    selected = []; //This is what I'm currently trying: if its null initialize it
  }

  if (selected.includes(searchText)) { //Don't add if it's already added
    this.get('notify').alert("Already added!", { closeAfter: 4000 });
  }
  else { // if it's not yet added push it to the array
    selected.pushObject(searchText);
  }
}

此代码非常适合添加我们为自定义选项预定义的选项,但如果它是我们尝试添加到新优惠组的第一个自定义优惠,则它不起作用。

我假设这与数组尚未初始化有关。指向这是由于数组未初始化的事实的指针是我收到一条错误消息:无法在未定义的情况下调用 pushObject。我假设它使用预定值的原因是 ember-power-select 可能在某处初始化它但我找不到任何关于它的文档。

感谢您的回答!

如果有人偶然发现了这个,这就是解决方案
在我们创建报价时调用它,然后像这样初始化报价数组:

offer.set('offer', []);