Ich habe eine einfache Dropdown, die von einem Array aufgefüllt wird. Benutzer bearbeiten einen Datensatz in einer Form, in der die Priorität des Datensatzes aus dem erwähnten Dropdown ausgewählt werden kann. Ich habe Schwierigkeiten beim Festlegen des ausgewählten Elements in diesem Dropdown. Hier ist mein Code für das Drop-Down-:Hinzufügen eines Attributs für eine Bedingung mit Winkel 2
<select *ngIf="formModel" [(ngModel)]="record.priority" formControlName="priority">
<option value="-1">Select priority</option>
<option *ngFor="let priority of formModel.priorities"
[ngValue]="priority"
[innerHtml]="priority.name"
[selected]="priority.id == record.priority.id"></option>
</select>
Die ausgewählte Priorität der Aufzeichnung jedoch nicht ausgewählt ist, ist die resultierende HTML zeigt selected="true"
. Wenn ich den Code der folgenden ändern:
[selected]="(priority.id == record.priority.id ? '' : null)"
Das Ergebnis ist selected=""
, aber die Option stil nicht ausgewählt. Ich habe bereits bestätigt, dass diese bestimmte Option ausgewählt werden sollte. Auch wenn ich den HTML-Code in Firebug auf nur selected
ändern, ist die Option ausgewählt. Also meine Frage ist: Wie kann ich ein Attribut für eine bestimmte Bedingung hinzufügen, so dass das Attribut nicht zu anderen Elementen mit einem leeren Wert hinzugefügt wird?
Ihr wählen 'ngModel' muss einen Wert haben, der in eine der Optionen ist. Hier sind Ihre Optionen Werte ein Objekt, und es ist ziemlich schwierig für das HTML, JS-Objekte zu lesen. Versuchen Sie stattdessen, in Ihren Optionswerten eine Eigenschaft wie 'name' oder' id' zu verwenden, und binden Sie Ihr ngModel ebenfalls daran. – trichetriche