Автозаполнение углового материала - Не удается прочитать свойство 'фильтр' из неопределенного - PullRequest
0 голосов
/ 10 февраля 2019

Я пытаюсь подключить автозаполнение Angular Material и получить ошибку ниже.

core.js: 1673 ОШИБКА TypeError: Невозможно прочитать свойство 'filter' из undefined в ProgramsComponent.push ../ src / app / Programs / Programs.component.ts.ProgramsComponent._filter (программы.component.ts: 34)

Вот код:

program.component.ts

import { ProgramService } from './../program.service';
import { Component, OnInit } from '@angular/core';
import { FormControl } from '@angular/forms';
import { Observable } from 'rxjs';
import { map, startWith } from 'rxjs/operators';

@Component({
  selector: 'app-programs',
  templateUrl: './programs.component.html',
  styleUrls: ['./programs.component.css']
})
export class ProgramsComponent implements OnInit {
  programNamesControl = new FormControl();
  programNames: string[];
  filteredOptions: Observable<string[]>;

  constructor(private programService: ProgramService) {}

  ngOnInit() {
    this.programService.getProgramNames().subscribe(data => {
      this.programNames = data;
    });

    this.filteredOptions = this.programNamesControl.valueChanges.pipe(
      startWith(''),
      map(value => this._filter(value))
    );
  }

  _filter(value: string): string[] {
    console.log('Inside filter..');
    return this.programNames.filter(programName =>
      programName.toLowerCase().includes(value.toLowerCase())
    );
  }
}

program.component.html

<form>
  <mat-form-field>
    <input type="text" placeholder="ProgramName" aria-label="ProgramName"
      matInput [formControl]="programNamesControl" [matAutocomplete]="auto">
      <mat-autocomplete #auto="matAutocomplete">
        <mat-option *ngFor="let option of filteredOptions | async" [value]="option">
          {{option}}
        </mat-option>
      </mat-autocomplete>
  </mat-form-field>
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...