2017-07-15 3 views
1

Ich habe hier alle Beiträge durchgesehen und kann immer noch nicht funktionieren. Ich versuche ein Dropdown in Angular2 zu implementieren, das zuerst einen ausgewählten Wert anzeigt.Angular2 Gewähltes Element im Drop-down-Menü wird nicht angezeigt

HTML.

<div class="col-sm-8"> 
    <div class="form-group"> 
    <select [(ngModel)]="selectedProjectType" class="form-control" required name="projectType"> 
    <option *ngFor="let projectType of projectTypes"> {{projectType.name}}</option> 
     </select> 
     <p *ngIf="selectedProjectType">{{selectedProjectType.projectType}}</p> 
    </div> 
</div> 

-Controller

selectedProjectType: ProjectType; 

constructor(
private projectsService: ProjectsService){ 
this.project = new Project(); 
this.route.params 
    .subscribe((params: Params) => { 
    this.projectsService.getProject(params['id']).then((project) => { 
    this.project = project; 
    this.selectedProjectType = project.projectType; 
    }); 
});} 

Der Absatz zeigt den richtigen ausgewählten Projekttyp, während die Auswahl der erste Option zeigt. Ich schätze, ich habe es richtig zugewiesen, aber ich habe ein Problem, es als ausgewählten Wert für die Auswahl zu setzen. Ich bin ein Anfänger bei Angular2 und ich kann nicht finden, was ich falsch mache. Danke für die Hilfe.

Antwort

0

Wenn der Wert kein String ist, verwenden Sie [ngValue]="..." auf <option>:

<option *ngFor="let projectType of projectTypes" [ngValue]="projectType> {{projectType.name}}</option> 
+0

ich ngValue verwende seit Project kein String ist und die Drop-Down zeigt leere .. – nagam11

+0

Wenn es um den Anfangswert ist (ausgewählt durch Code), müssen Sie 'compareWith' verwenden, wie in https://stackoverflow.com/questions/43008374/how-to-set-the-initial-value-in-a-dropdown-in-angular2-for-a- gezeigt -different-object/43008423 # 43008423 –

+1

Es hat funktioniert! Vielen Dank !! – nagam11

Verwandte Themen