Как я могу найти имя или адрес электронной почты, используя ember-power-select - PullRequest
0 голосов
/ 20 апреля 2020

Я использую аддон ember-power-select.

Github: https://github.com/cibernox/ember-power-select

Документы для поиска: https://ember-power-select.com/docs/the-search

Документы для множественного выбора: https://ember-power-select.com/docs/multiple-selection/

Вопрос: Как выполнить поиск, используя name или email

/template.hbs

<PowerSelectMultiple
  @searchEnabled={{true}}
  @options={{this.authors}}
  @selected={{this.author}}
  @searchField="email"
  @placeholder="Select some names..."
  @onChange={{fn (mut this.author)}} as |author|>
  {{name}}
</PowerSelectMultiple>

/controller.js

 authors = [
    { name: 'Foo', email: 'foo@gmail.com' },
    { name: 'Bar', email: 'bar@gmail.com'},
    { name: 'Baz' email:  'baz@gmai.com'}
  ]

1 Ответ

4 голосов
/ 20 апреля 2020

// controller .js

authors = [
    { name: 'Foo', email: 'foo@gmail.com' },
    { name: 'Bar', email: 'bar@gmail.com'},
    { name: 'Baz' email:  'baz@gmai.com'}
  ]
  
 // add below method you can do something like this
searchMethod(term) {
   let result = '';
   result = this.authors.filter((item)=>{
     if(term == item.name || term == item.email){
     return true;
   });
   return result;
  }
/*template.hbs */

<PowerSelectMultiple
  @searchEnabled={{true}}
  @options={{this.authors}}
  @selected={{this.author}}
  @search={{this.searchMethod}}  /* add @search */
  @searchField="email"
  @placeholder="Select some names..."
  @onChange={{fn (mut this.author)}} as |author|>
  {{name}}
</PowerSelectMultiple>

Вы можете обратиться по этой ссылке из Power-select DO C

Я не уверен насчет Возвращаемый тип searchMethod. Вы можете проверить lib и выбрать соответствующую настройку.

...