2017-09-15 5 views
0

角度2では、入力を含む子コンポーネントがあります。この入力(コントロール)を親コンポーネントフォーム(NgForm)に追加したいと思います。子コンポーネントから作成する角度追加コントロール

私は現在、簡単のためテンプレート駆動型を使用しています。

私はこの答えを見ましたが、それはおそらく時代遅れだと思う?: Angular 2 Add control to parent component's form

子コンポーネントテンプレートを: formInputName私はこのコンポーネントを再利用し、動的に「名前」プロパティを追加できるように結合入力されています。親コンポーネントで

<input class="text-input" [name]="formInputName" [id]="formInputName" type="text" [(ngModel)]="searchValue" 
      (change)="onChange(searchValue)" 
      (blur)="onBlur()" 
      (focus)="onFocus()" 
      [required]="isRequired"> 

私は、フォームのインスタンスを持っている:

@ViewChild('testForm') testForm: NgForm; 

は、どのように私はNgFormのこのインスタンスに子コンポーネントコントロールを追加することができますか?私はaddControlでそれを行う方法がわかりません。テンプレートに何を追加する必要があるのか​​、コントローラーでプログラムでそれを行う方法がわからない

Plunker:https://plnkr.co/edit/rDluyJduyHF7vclK9wRE?p=preview

+0

あなたはplunkerを作成することができますか? –

+0

https://plnkr.co/edit/rDluyJduyHF7vclK9wRE?p=preview – mrshickadance

+0

'test-component'コンポーネントに' ControlValueAccessor'を実装する必要があります。 [角型でControlValueAccessorを実装するときには、再度混乱しないでください](https://blog.angularindepth.com/never-again-be-confused-when-implementing-controlvalueaccessor-in-angular-forms-93b9eee9ee83)を参照してください。 –

答えて

2

あなたはこれを試して、それが機能しているかどうかを確認もらえ、

子コンポーネント

@Output() childControl = new EventEmitter<NgModel>(); // import { NgModel } from '@angular/forms'; 
@ViewChild('myControl') myControl: NgModel; 

ngAfterViewInit() { 
this.childControl.emit(myControl); // emitting the control to the parent to be picked up there and added to the main form 
} 

子テンプレート

<input #myControl="ngModel" class="text-input" [name]="formInputName" [id]="formInputName" type="text" [(ngModel)]="searchValue" 
      (change)="onChange(searchValue)" 
      (blur)="onBlur()" 
      (focus)="onFocus()" 
      [required]="isRequired"> 

親テンプレート

<child-component (childControl)="childControlReady($event)"></child-component> 

親コンポーネント

childControlReady(control: NgModel) { 
this.testform.addControl(control); 
} 
+1

の記事を読んだ後に質問を編集していくつかの説明を追加することができます。ありがとうございました! #myControlがngModelへの参照を与えることが鍵でした。 – mrshickadance

関連する問題