如何从angular2组件中的select中获取值?

时间:2016-12-19 13:31:05

标签: angular select

我遇到过多种解决方案,但从我的角度来看并没有找到任何感兴趣的东西。

我有一个组件:

<select [(ngModel)]="languages" [ngModelOptions]="{standalone: true}">
  <option *ngFor="let language of languages">{{language.languageName}}</option>
</select>

我有打字稿文件:

 getCountries(): void{
     this.country.find({}).subscribe((data)=>{
     this.countries = data;
     console.log(data);}, err =>{  console.log(err);});

在控制台中呈现以下json:

enter image description here

我不知道为什么我不能选择任何值,因为我也使用[value]进行了测试。

2 个答案:

答案 0 :(得分:0)

您需要设置name属性并移除[ngModelOptions]="{standalone: true}"

Forms:

  

每个输入元素都有一个name属性,Angular Forms需要该属性才能使用表单注册控件。

您不能做的是将单个属性绑定到多值类型变量。如果要选择多个值,则应使用

<select multiple name="selectedLanguages" [(ngModel)]="selectedLanguages">
    <option *ngFor="let language of languages" [value]="language.languageCode">  
        {{language.languageName}}
    </option>

</select>

答案 1 :(得分:0)

language绑定到ngValue

<select [(ngModel)]="languages" [ngModelOptions]="{standalone: true}">
  <option *ngFor="let language of languages" [ngValue]="language">{{language.languageName}}</option>
</select>