2016-05-17 11 views
2

Ich habe 2 Objekte in meinem Projekt: a company und user. Ich habe ein Formular, wo der Benutzer sein Profil aktualisieren kann. Eines der Dinge, die er aktualisieren kann, ist das Land. Um die Länder anzuzeigen, benutze ich eine Dropdown-Liste.Legen Sie das ausgewählte Attribut in einer Dropdown-Liste fest, wenn die Bedingung in Angular2 erfüllt ist.

Ich mag das selected Attribut in der Option festgelegt, wo die name der country die eigentlichen country der user gleich ist. (country.name==user.country)

Dies ist, was ich versucht habe, aber es scheint nicht zu funktionieren.

<select> 
    <option *ngFor="#c of countries" [ngStyle]="setStyles()" [ngValue]="c">{{c.name}}</option>   
</select> 

setStyles(){ 
    let styles; 
    if (this.companies[i].name == this.user.country) { 
     styles = { 
      'selected' 
     } 
    return styles; 
} 

Antwort

5

Ich würde versuchen, die folgenden:

<select> 
    <option *ngFor="#c of countries" 
     [attr.selected]="c.name == user.country ? true : null" 
     [ngValue]="c"> 
    {{c.name}} 
    </option> 
</select> 

Ich denke, dass es ein Attribut, das Sie brauchen, und kein Stil.

+0

Danke, es funktioniert, aber nicht bei jedem Benutzer, aber ich denke, ich muss etwas von meinem Code zwicken. – Claudiu