웹사이트 검색

Angular의 반응형 양식: 변경 사항 수신


FormGroup 및 FormControl과 같은 반응형 양식 인스턴스에는 최신 값을 내보내는 관찰 가능 항목을 반환하는 valueChanges 메서드가 있습니다. 따라서 valueChanges를 구독하여 인스턴스 변수를 업데이트하거나 작업을 수행할 수 있습니다.

이것이 처음이라면 Reactive Forms에 대한 소개를 살펴보십시오.

여기에서는 양식에서 값이 변경될 때마다 템플릿 문자열을 업데이트하는 매우 간단한 예제를 만들 것입니다.

먼저 FormBuilder를 사용하여 반응형 양식을 초기화하겠습니다.

myForm: FormGroup;
formattedMessage: string;

constructor(private formBuilder: FormBuilder) {}

ngOnInit() {
  this.myForm = this.formBuilder.group({
    name: '',
    email: '',
    message: ''
  });

  this.onChanges();
}

양식을 초기화한 후 ngOnInit 수명 주기 후크에서 onChanges 메서드를 호출하는 방법에 주목하십시오. 다음은 onChanges 메서드의 내용입니다.

onChanges(): void {
  this.myForm.valueChanges.subscribe(val => {
    this.formattedMessage =
    `Hello,

    My name is ${val.name} and my email is ${val.email}.

    I would like to tell you that ${val.message}.`;
  });
}

전체 양식 그룹 대신 특정 양식 컨트롤의 변경 사항을 수신할 수도 있습니다.

onChanges(): void {
  this.myForm.get('name').valueChanges.subscribe(val => {
    this.formattedMessage = `My name is ${val}.`;
  });
}

🌌 valueChanges가 observable을 반환하기 때문에 방출된 값으로 할 수 있는 작업의 측면에서 하늘이 거의 한계입니다.