我有一个场景,用户可以输入文本,当他按下Enter
键时,它将被标记为已选择。问题,how will I show the input text that should show as selected when I press Enter?
示例:我输入了Miguel
并按Enter,它应显示为所选记录之一
附件:https://ember-power-select.com/docs/multiple-selection
/template.hbs
<PowerSelectMultiple
@searchEnabled={{true}}
@options={{this.names}}
@selected={{this.name}}
@onInput={{fn this.foo}}
@onKeydown={{fn this.baz}}
@placeholder="Select some names..."
@onChange={{fn (mut this.name)}} as |name|>
{{name}}
</PowerSelectMultiple>
/component.js
import Controller from '@ember/controller';
import { action } from "@ember/object";
import { tracked } from "@glimmer/tracking";
export default class extends Controller {
@tracked
fooBarBazList = [];
@tracked
fooBarBazSelectedFromInput = "";
names = ['Stefan', 'Mike', 'Tomster', 'Pluto'];
@action
foo(value) {
this.fooBarBazSelectedFromInput = value;
}
@action
baz(value, event) {
if(event.key === 'Enter') {
let list = this.fooBarBazList;
let selected = this.fooBarBazSelectedFromInput;
list.pushObject(selected);
}
}
}
它不是PowerSelectMultiple组件中内置的。但是它可能在基于PowerSelect插件构建的任何插件中都可用。请参阅此link以获取受支持的插件。
您的要求可以使用以下附件解决,https://github.com/cibernox/ember-power-select-with-create