Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 将文本绑定到角度2中选定的下拉列表值_Angular_Drop Down Menu_Angular2 Databinding - Fatal编程技术网

Angular 将文本绑定到角度2中选定的下拉列表值

Angular 将文本绑定到角度2中选定的下拉列表值,angular,drop-down-menu,angular2-databinding,Angular,Drop Down Menu,Angular2 Databinding,我在citylist组件模板中有一个下拉列表 {{cty.name} 城市的排列是这样的: cityarray = [new Cities(1,'Berlin'), new Cities(2,'London'), new Cities(3,'Portland'), new Cities(4,'Zurich'), new Cities(5,'Cardiff') ] 其中Cities类对象具有id和名称 我想要

我在citylist组件模板中有一个下拉列表


{{cty.name}

城市的排列是这样的:

cityarray = [new Cities(1,'Berlin'),
          new Cities(2,'London'),
          new Cities(3,'Portland'),
          new Cities(4,'Zurich'),
          new Cities(5,'Cardiff') ]
其中Cities类对象具有id和名称

我想要的是简单地打印从para标签内的下拉列表中选择的城市。
如果可能,如何使用ngModel?还是必须编写模型更改事件?

奇怪的做法是:

<select [(ngModel)]="selectedCity.id">
 <option *ngFor="let cty of cityarray" [ngValue]= "cty.id"> 
    {{cty.name}}
 </option>
</select>

<ng-container *ngFor="let cty of cityarray">
    <p *ngIf='selectedCity.id === cty.id'>
         {{cty.name}}
    </p>
</ng-container>

{{cty.name}

{{cty.name}


您可以像下面这样连接ngModelChange事件:

<select [(ngModel)]="selectedCity.id" (ngModelChange)="setCity($event)">
   <option *ngFor="let cty of cityarray" [ngValue]= "cty.id"> 
    {{cty.name}}
   </option>
</select>
<p>{{selectedCity}} </p>

希望能有帮助

你已经试过[(ngModel)]=“selectedCity”和[ngValue]=“cty”了吗?简单的peasy@yurzui!完美的解决方案。你能告诉我“?”是如何工作的吗?你可以像
someValue那样思考它?someValue.someProp:null
适用于ngModelChange。谢谢你的帮助!
selectedCity:any;
setCity($event){
 this.selectedCity = this.cityarray.filter(c => return c.id == $event)[0].name;
}