Angular 2. Chrome中的错误:找不到具有未指定名称属性的控件

时间:2017-02-26 10:34:31

标签: google-chrome angular

plunker在Firefox中可以解决任何控制台错误,但在Chrome中我收到消息:

formcontrol错误

<ul>
  <li *ngFor="let item of data">
    <label>
      <input type="radio" name="radio1"
        [value]="item.id"
        [formControl]="childControl"
        (input)="fn($event.target.value)" >
      <p>{{ item.title }}</p>
    </label>
  </li>
</ul>
  

找不到具有未指定名称属性的控件

2 个答案:

答案 0 :(得分:5)

由于您的MyChild模板中指定了[formControl]="childControl",因此您需要在MyChild类中指定FormControl。

export class MyChild  implements ControlValueAccessor {
  @Input() data: any;
  out: any;
  childControl = new FormControl();

  fn: (value:any) => void;

  validateFn: any = () => {};

  constructor(private _renderer: Renderer, private _elementRef: ElementRef) {}

  writeValue(value: any): void {
    this._renderer.setElementProperty(this._elementRef, 'checked', value == this._elementRef.nativeElement.value);
  }
  registerOnChange(fn: (value: any) => void) {
    this.onChange = fn;
  }
  registerOnTouched() {}

}

然而,在此之后,您最终会出现一个似乎无关的错误TypeError: v is not a function

答案 1 :(得分:0)

我认为您必须对输入标记使用formControlName属性,我希望它会有所帮助。