如何将输入的无线电值绑定到角度对象?

时间:2018-10-05 07:08:17

标签: angular html5 frontend

我想将单选按钮与对象而不是字符串绑定在一起。为此,我尝试了类似于以下代码:

<div *ngFor="let object of objects">
    <input type="radio" id="category" [(ngValue)]="object">
</div>

Angular中是否有一种方法可以将对象与单选按钮的值绑定在一起?

1 个答案:

答案 0 :(得分:2)

ngValue不适用于单选按钮。仅适用于select列表。

您可以使用[value]属性绑定语法将对象分配为所选单选按钮的值。

使用它作为模板:

<div *ngFor="let object of objects">
  <input 
    (change)="onCheck()" 
    [(ngModel)]="selectedCategory" 
    type="radio" 
    id="category" 
    [value]="object">
    {{ object.categoryValue }}
</div>

在您的班级:

import { Component } from '@angular/core';

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: [ './app.component.css' ]
})
export class AppComponent  {
  name = 'Angular';

  selectedCategory;

  objects = [
    {categoryName: 'Category1', categoryValue: 'Category1'},
    {categoryName: 'Category2', categoryValue: 'Category2'},
    {categoryName: 'Category3', categoryValue: 'Category3'},
  ];

  onCheck() {
    console.log(this.selectedCategory);
  }

}

这是您推荐的Sample StackBlitz