2017-06-17 55 views
5

Abone olarak değiştirildiyse, formum ("aile") değerlerinden birini almak istiyorum ancak bir şey yanlış görünüyor, çünkü konsolumun günlüğünde hiçbir şey yok. Form değişkeniAçısal Form Kontrol değeriDeğişiklikler çalışmıyor

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

Neden 'değişikliği() sizin HTML'ın giriş alanlarında' olay işleyicisi kullanmayın ? – Abrar

cevap

1

Kullanım get yöntem frm1

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

Bunu yaptım ama değer girdiğimde hala konsolumda hiçbir şey yok !!! –

+0

Kodu ngOnInit() 'ye yerleştirin ve deneyin. NgAfterViewInit() ' –

+0

içinde yapmamıza gerek yok, şimdi çalışıyor, AfterViewInit'in neden sorunu olduğunu biliyor olabilirim !! –

0

bu deneyin:

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

konsolda hiçbir şey almadı !! –

+0

Projemde test ettim: işe yarıyor: –

+0

ile ilgili bir hata mesajı aldım. bunu dene. Test –