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;
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!
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.
und Filterfunktion
%Vor% Sie können das displayWith Attribut wie: In Ihrer Komponente: In der Vorlage: 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 Ссылка
Tags und Links angular typescript mongodb angular-material2