2017-07-15 141 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

相关问题