2017-02-26 91 views
6

在Firefox这plunker工作,任何控制台错误,但在Chrome中我得到的消息:在formcontrol在Chrome角2.错误:无法找到未指定名称属性控制

<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> 

错误

无法找到未指定名称控制属性

+0

代码:[plunker](https://plnkr.co/edit/hkk0CANKWRmys9R4gZg1?p=preview) – MikeS

+0

我很抱歉。我的错误和不注意。 – MikeS

回答

3

既然你已经在你的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

0

我认为你必须使用formControlName属性为输入标签,我希望这将有助于一个错误。

相关问题