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', []);
我正在使用 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', []);