如何使用ngControl(AngularJS2)实现单选按钮?

时间:2016-04-09 15:05:30

标签: radio-button angular angular2-template

我对如何使用ngControl

在表单中实现单选按钮有疑问

以下是模板的代码:

<div class="form-group">
    <label class="radio-inline" *ngFor="#size of formModel.sizes">
        <input type="radio" ngControl="ourSize" #ourSize="ngForm" value="{{ size }}" >
        {{ size }}
    </label>
</div>

这是模型的代码:

this.formModel = {
        sizes: ['asd1', 'asd2', 'asd3']
}

我有这样的错误:enter image description here

P.S。我已经检查了另一个答案Angular2 - Radio Button Binding  但它没有帮助我(

1 个答案:

答案 0 :(得分:3)

您需要以这种方式使用无线电输入:

@Component({
  selector: 'my-app', 
  template: `
    <form>
      <div class="form-group">
        <label class="radio-inline" *ngFor="#size of formModel.sizes; #i=index">
        <input type="radio" [(ngModel)]="formModel.sizes[i]" #ctrl="ngForm" ngControl="sizeCtrl" name="size"/>
        {{ size.value }}
      </label>
    </div>
    Test: {{ctrl?.value}}
    Values: {{formModel | json}}
  </form>
`
})
export class AppComponent {
  constructor() {
    this.formModel = {
      sizes: [
        new RadioButtonState(true, 'asd1'),
        new RadioButtonState(false, 'asd2'),
        new RadioButtonState(false, 'asd3')
      ]
    };
  }
}

单选按钮状态根据选择的内容进行更新。似乎控件不能在这个级别上使用......

这个笨蛋:https://plnkr.co/edit/kHJyq3N5ZtoNyAPz6Kbc?p=preview