Angular 5 / Material 2 - Falscher Wert im Feld nach Auswahl der Option

8

Ich stehe vor einem Problem mit meinen AutoComplete-Feldern für Angular Material 2 .

Das ist mein Setup:

hardwareCreate.component.ts

%Vor%

hardwareCreate.component.html

%Vor%

Also mein Problem ist jetzt, dass, wenn ich tippe, ich das firmware.name Attribut bekomme, das richtig ist und so aussieht:

Aber wenn ich jetzt eine Firmware auswähle, ändert sich der value in _id von firmware .

Also könnte ich [value]="firmware._id" in [value]="firmware.name" ändern, aber ich brauche die ID für mein mongodb - & gt;

%Vor%

Frage: Wie kann ich den Anzeigewert in den Namen ändern, bekomme aber trotzdem die ID für meine Datenbank, wenn der Benutzer eine bestimmte Firmware auswählt?

Die Lösung ist jetzt eine Kombination von vsoni und JEYs Antworten. Das Problem am Ende war, dass val ein Objekt war. Durch die Umwandlung in eine Zeichenfolge funktioniert alles wie ein Charme! Danke euch beiden!

    
Sithys 19.01.2018, 11:40
quelle

2 Antworten

3

Sie können displayWith function verwenden.

Ihre Komponente.html würde

werden %Vor%

Definieren Sie dann folgende Anzeigefunktion in Ihrem component.ts

%Vor%

Sie können auf die Firmware-ID in getXXX(firmware) function zugreifen, die Sie in Ihrer component.ts definiert haben. Diese Funktion wird bei einer Auswahländerung aufgerufen.

%Vor%

und Filterfunktion

%Vor%     
vsoni 26.01.2018, 10:47
quelle
1

Sie können das displayWith Attribut wie:

In Ihrer Komponente:

%Vor%

In der Vorlage:

%Vor%

In dieser Lösung ist der Wert das gesamte Firmware-Objekt, so dass Sie alles davon abrufen können.

Sie finden hier ein laufendes Beispiel Ссылка

    
JEY 26.01.2018 09:54
quelle