2017-06-17 13 views
5

サブスクリプションで変更された場合、私のフォーム( "ファミリー")の値を取得したいのですが、コンソールのログに何もないので何か間違っているようです。角型コントロールvalueChangesが機能しない

import { Component , AfterViewInit } from '@angular/core'; 
import {FormGroup,FormBuilder} from '@angular/forms'; 
import {Observable} from 'rxjs/Rx'; 

@Component({ 
selector: 'app-root', 
template: `<h1>Hello World!</h1> 
      <form [formGroup]="frm1"> 
      <input type="text" formControlName="name" > 
      <input type="text" formControlName="family"> 
      </form> 
      `, 

}) 

export class AppComponent implements AfterViewInit{ 

frm1 : FormGroup; 

constructor(fb:FormBuilder){ 
    this.frm1 = fb.group({ 
     name : [], 
     family: [] 
    });  
} 
ngAfterViewInit(){ 
    var search = this.frm1.controls.family; 
    search.valueChanges.subscribe(x => console.log(x));  
} 
} 
+0

を? – Abrar

答えて

1

使用フォーム変数のget方法frm1

ngOnInit(){ 
     this.frm1.get('family').valueChanges.subscribe(x => console.log(x)); 
} 
+1

私はそれをしましたが、私は値を入力するときに私のコンソール上に何も得ていません!!! –

+0

'ngOnInit()'の中にコードを置き、試してみてください。 'ngAfterViewInit()'の中で行う理由はありません –

+0

今、AfterViewInitに問題があった理由を知っているかもしれません! –

0

このお試しください: `チェンジ()あなたのHTMLの入力フィールドに`イベントハンドラを使用しないのはなぜ

import { Component , AfterViewInit, OnInit } from '@angular/core'; 
import {FormGroup,FormBuilder} from '@angular/forms'; 
import {Observable} from 'rxjs/Rx'; 

@Component({ 
selector: 'app-root', 
template: `<h1>Hello World!</h1> 
     <form [formGroup]="frm1"> 
     <input type="text" formControlName="name" > 
     <input type="text" formControlName="family"> 
     </form>`}) 

export class AppComponent implements AfterViewInit, OnInit{ 

frm1 : FormGroup; 

constructor(private formBuilder: FormBuilder){} 

ngOnInit(): void { 
    this.formInit(); 
    this.formSet(); 
} 

formInit(): void { 
    this.frm1 = this.formBuilder.group({ 
     name: [''], 
     family[''] 
    }) 
} 

formSet(): void { 
    const editForm = { 
     name: 'test-name', 
     family: 'test familty', 
    }; 
    this.frm1.patchValue(editForm) 
} 

ngAfterViewInit(){ 
this.frm1 .controls.family.valueChanges.subscribe(
     () => { 
       console.log(this.frm1 .controls.family.value) 
      } 
     ) 
     } 
} 
+0

コンソールで何も得られない!! –

+0

私は私のプロジェクトでテストしました:それは動作します:あなたは何のエラーを取得しました –

+0

私は答えを更新しました。これを試して。テストされた –

関連する問題