Угловой коврик-автозаполнение не показывает опции - PullRequest
0 голосов
/ 19 декабря 2018

Я использую автозаполнение, чтобы пользователи могли выбирать адрес (или искать его и выбирать его).

На той же странице пользователи могут добавлять адреса.После того, как они добавили адрес, я хочу добавить адрес в mat-autocomplete.

В настоящее время моя проблема заключается в том, что mat-autocomplete не показывает никаких опций.Для устранения неполадок я устанавливаю div, который использует * ngFor для отображения адресов и работает и обновляет.

// компонент (пропущен некоторый код)

filteredAddresses_pickup;

constructor(public translate: TranslateService, private addressService: 
AddressService, private route: ActivatedRoute) { }

ngOnInit() {
this.addresses = this.route.snapshot.data['addresses'];

this.filteredAddresses_pickup = Observable.create((observer: Observer<Address[]>) => {
  observer.next(this.addresses);

  this.addressService.addressesChanged.subscribe(
    (addresses: Address[]) => {
      observer.next(addresses);
      this.addresses = addresses;
      console.log(this.addresses);
    });

  this.pickupaddress.valueChanges.subscribe(value_entered => {
    console.log(value_entered);
    console.log(this._filterAddresses(value_entered));
    observer.next(this._filterAddresses(value_entered));
  });


});
}

компонент HTML:

              <mat-form-field class="full-width">
                <input matInput placeholder="{{ 'mainapp.shipment.pickupaddress' | translate }}"
                       attr.aria-label="{{ 'mainapp.shipment.pickupaddress' | translate }}" [matAutocomplete]="auto"
                       [formControl]="pickupaddress"
                >
                <ng-template *ngIf="filteredAddresses_pickup | async; else loadingtwee">
                <mat-autocomplete #auto="matAutocomplete" autoActiveFirstOption [displayWith]="displayAddress"><!---->
                  <mat-option *ngFor="let pickup of filteredAddresses_pickup | async" [value]="pickup">
                    <span>{{pickup.name}}, {{pickup.postalcode}}, {{pickup.country}}</span>
                  </mat-option>
                </mat-autocomplete>
                </ng-template>
              </mat-form-field>
<div *ngIf="filteredAddresses_pickup | async; else loading">
  <div *ngFor="let a of filteredAddresses_pickup | async">
    <span>{{a.name}}, {{a.postalcode}}, {{a.country}}</span>
  </div>
</div>
<ng-template #loading>
  Textdiv...
</ng-template>
<ng-template #loadingtwee>
  Dropdown...
</ng-template>

Я не вижу mat-options (он работает только как текстовое поле ввода), но я вижу несколько диапазонов, которые фильтруют, когда я что-то вводю в поле ввода или срабатывает addressChanged.

Как это исправить?

1 Ответ

0 голосов
/ 19 декабря 2018

Я решил это, удалив второй коврик автозаполнения, который был на правой стороне.Я еще не настроил второй правильно, и, кажется, он мешает первому (без ошибок).

Если у вас возникла та же проблема: удалите все остальные функции автозаполнения, проверьте, не поврежден ли ваш) mat-autocomplete работает и медленно добавляйте остальные.

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