2017-07-15 136 views
1

我一直在這裏經歷所有帖子,但仍然無法工作。我試圖在Angular2中實現一個下拉菜單,它首先顯示一個選定的值。Angular2在下拉列表中選擇的項目不顯示

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> 

控制器

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; 
    }); 
});} 

段落顯示正確的選擇項目類型而選擇顯示的第一個選項。所以我猜我已經分配了它的權利,但我有一個問題,把它作爲選擇的選定值。我是Angular2的初學者,我找不到我做錯了什麼。感謝您的幫助。

回答

0

如果該值不是一個字符串,在<option>使用[ngValue]="..."

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

我使用ngValue因爲項目類型是不是字符串,並且下拉顯示空白.. – nagam11

+0

如果它是關於初始值(通過選擇代碼),您需要使用'compareWith',如https://stackoverflow.com/questions/43008374/how-to-set-the-initial-value-in-a-dropdown-in-angular2-for-a - 不同的對象/ 43008423#43008423 –

+1

它工作!萬分感謝 !! – nagam11

相關問題