Как передать массив типа any в Lookup - PullRequest
0 голосов
/ 13 февраля 2019

Я пытаюсь использовать ngl-lookup библиотеки ngl-lightning. Я хочу передать массив типа any [] вместо String [], это мой код:

 <ngl-lookup [lookup]="lookupManagerUsers" [icon]="true" [image]="'user'" [noResultsText]="'Aucun résultat trouvé'"
            [(pick)]="pickedManagerUser" (pickChange)="managerUserPicked($event)" placeholder="Recherchez un agent..." formControlName="manager_id"
            ngDefaultControl>
            <ng-template nglLookupItem let-item>
              <div class="slds-media__body">
                <span class="slds-media__figure slds-listbox__option-icon">
                  <span class="slds-icon_container slds-icon-standard-user">
                    <svg class="slds-icon slds-icon_small" aria-hidden="true">
                      <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/icons/standard-sprite/svg/symbols.svg#user" />
                    </svg>
                  </span>
                </span>{{item}}
              </div>
            </ng-template>
 </ngl-lookup>

и этомой метод pickedManagerUser: string = '';

lookupManagerUsers = (query: string, source = this.manager_users): any[] => {
let temp = [];
if (!query) {
  temp = source;
} else {
  const temp2 = source.filter(user => user.first_name.indexOf(query.toLowerCase()) > -1 || user.last_name.indexOf(query.toLowerCase()) > -1);
  for (const m of temp2) {
    temp.push(m);
  }
}
return temp;}


 managerUserPicked(superhero) {
console.log(superhero); }

но это действительно моя проблема: enter image description here

любая помощь, пожалуйста

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

благодаря bekos я исправил проблему и изменил свой код на

 <ngl-lookup [lookup]="lookupManagerUsers" [icon]="true" [image]="'user'" [noResultsText]="'Aucun résultat trouvé'"
            [pick]="pickedManagerUser" (pickChange)="managerUserPicked($event)" placeholder="Recherchez un agent..." formControlName="manager_id"
            ngDefaultControl>
            <ng-template nglLookupItem let-item>
              <div class="slds-media__body">
                <span class="slds-media__figure slds-listbox__option-icon">
                  <span class="slds-icon_container slds-icon-standard-user">
                    <svg class="slds-icon slds-icon_small" aria-hidden="true">
                      <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/assets/icons/standard-sprite/svg/symbols.svg#user" />
                    </svg>
                  </span>
                </span>{{item.first_name}} {{item.last_name}}
              </div>
            </ng-template>
          </ngl-lookup>

, а эту функцию на

managerUserPicked(managerUserPicked) {
if (managerUserPicked) {
  this.pickedManagerUser = managerUserPicked.first_name + ' ' + managerUserPicked.last_name;
  console.log(managerUserPicked);
} else {
  this.pickedManagerUser = null;
}}

enter image description here enter image description here

0 голосов
/ 14 февраля 2019

Попробуйте напечатать определенное свойство вместо всего item, то есть {{item.first_name}} вместо всего элемента как {{item}}.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...