Material 2 Form-Control Select funktioniert Nicht mit Async Source

Ich bin mit Eckigen 4.3.4 mit Material 2.0.0-beta.12 und ich habe Probleme beim erstellen einer Matte-wählen Sie zum generieren eines dynamischen Matte-option-Liste von einer asynchronen Quelle. Alles, was ich bekommen ist der Platzhalter und das dropdown nicht erweitern. Ich weiß nicht einmal erhalten und Fehler-code.

Hier ist ein Beispiel von meinem code AKTUALISIERT:

 <form [formGroup]="snoozeForm" novalidate>
  <div fxLayout="column">
    <mat-form-field>
      <mat-select formControlName="snooze_reason">
        <mat-option [value]="reason.attributes.snooze_reason_code" *ngFor="let reason of reasons">{{ reason }}</mat-option>
      </mat-select>
    </mat-form-field>
</form>

Wie Sie sehen können Gründen ist das array wird dynamisch gefüllt. Ich muss Blick etwas einfach, aber ich bin sicher, dass Gründen wird immer aufgefüllt.

Hier ist, wo ich das array zu füllen:

ngOnInit() {
  this.generateForm();
  this.httpService.getSnoozeReasons()
    .subscribe( res => {
      this.reasons = res;
    }, (error: any) => {
      const msg: Message = { title: 'Frontend API Error', textbody1: '' };
      if (error.message) {
        msg.textbody1 = <any>error.message;
        msg.textbody2 = `Task-details component - Snooze reasons`;
      } else {
        msg.textbody1 = `HTTP ${error.status}: ${error.statusText}`;
        msg.textbody2 = `Task-details - Snooze reasons: ${error.url}`;
      }
      this.messageService.createMessage(msg);
    })
  ;
}

generateForm(): void {
  this.snoozeForm = this.fb.group({
    snooze_reason: ['', [Validators.required]],
    snooze_hour: ['', [Validators.pattern('[0-9]*'), Validators.max(72)]],
    snooze_minute: ['', [Validators.required, Validators.min(5), Validators.pattern('[0-9]*')]]
  });
}

Material 2 Form-Control Select funktioniert Nicht mit Async Source

Hat jemand hatte dieses Problem mit asynchronen Daten und der Select-Formular-Steuerelement?

  • "ich bin aber sicher, dass Gründe, die ist immer aufgefüllt" also, wie sieht es aus, wenn Sie die Konsole loggen? 🙂
  • und was ist reason? und warum wird es verwendet als value es?
  • Wie Sie sehen können aus dem screenshot habe ich Hinzugefügt, Gründe ist ein array von Objekten, daher ist ein Objekt, und der Wert zugewiesen werden, eine Eigenschaft des Objekts.
  • Dein code sieht gut zu mir, nur Problem, das ich sehe ist, dass Sie zeigen einige Eigenschaft der interpolation.. {{reason.type}} zum Beispiel in der dropdown-Liste auswählen, aber das ist nicht das Problem, würden Sie zumindest sehen [object Object] in Ihrem dropdown-trotz, dass. Könntest du vielleicht helfen, ein plunker/stackblitz, zeigt sich das Problem? Als ein anderes detail, keine Notwendigkeit zu verwenden novalidate mehr angewendet wird, automatisch durch Eckige heutzutage.
  • Ja, ich bin am überlegen zu versuchen, zu replizieren, das Problem mit einer viel einfacheren version an diesem Wochenende. Ich wusste nicht, dass gab es keine Notwendigkeit für die novalidate mehr. Vielen Dank für das heads-up!
Schreibe einen Kommentar