ngvalue example select angular ngfor

select - example - Angular2*ngFor en la lista de selección, establezca activo en función de la cadena desde el objeto



selected angular 4 (2)

Compruébelo en este violín de demostración , siga adelante y cambie el menú desplegable o los valores predeterminados en el código.

Configuración del passenger.Title . title.Value con un valor que equivale a un title.Value . El title.Value debería funcionar.

Ver:

<select [(ngModel)]="passenger.Title"> <option *ngFor="let title of titleArray" [value]="title.Value"> {{title.Text}} </option> </select>

TypeScript utilizado:

class Passenger { constructor(public Title: string) { }; } class ValueAndText { constructor(public Value: string, public Text: string) { } } ... export class AppComponent { passenger: Passenger = new Passenger("Lord"); titleArray: ValueAndText[] = [new ValueAndText("Mister", "Mister-Text"), new ValueAndText("Lord", "Lord-Text")]; }

Estoy tratando de usar el ngFor en mi DropDownList seleccionado. Se han cargado las opciones que deberían estar en el desplegable.

El código que ves aquí:

<div class="column small-12 large-2"> <label class="sbw_light">Title:</label><br /> <select [(ngModel)]="passenger.Title"> <option *ngFor="#title of titleArray" [value]="title.Value">{{title.Text}}</option> </select> </div>

Basado en este código, produce un menú desplegable que se parece a esta imagen.

El problema es que quiero establecer a uno de ellos "Señor o Sra." Como activo basado en el passenger.Title que es una cadena ya sea "Sr." o "Sra.".

Cualquiera puede ayudar a ver lo que estoy haciendo mal aquí?


Esto debería funcionar

<option *ngFor="let title of titleArray" [value]="title.Value" [attr.selected]="passenger.Title==title.Text ? true : null"> {{title.Text}} </option>

No estoy seguro del attr. La parte es necesaria.