我有一个场景,用户可以输入文本,当他按下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);
}
}
}发布于 2020-04-22 00:15:16
它不是内置在PowerSelectMultiple组件中的。但它可能在任何基于PowerSelect插件构建的插件中可用。有关支持的插件,请参阅此link。
您的需求可以使用下面的插件https://github.com/cibernox/ember-power-select-with-create来解决
https://stackoverflow.com/questions/61343882
复制相似问题