У меня есть форма, которая синхронизируется с базой данных Firestore.Теперь, когда кто-то меняет значение поля «Национальность», я хочу запустить некоторые дальнейшие действия, например:
this.profileFormStageOne.get('nationality').valueChanges.subscribe(val => {
if (val && val === 'Other') {
let alert = this.alertCtrl.create({
title: 'Your Nationality',
inputs: [
{
name: 'nationality',
placeholder: 'Your Nationality e.g. Brazilian',
},
],
buttons: [
{
text: 'Update Nationality',
handler: data => {
this.manualNationality = data.nationality;
console.log(this.manualNationality);
},
},
],
});
alert.present();
}
});
Однако я также использую ngOnChanges () для исправления значений с помощью формы, например:
/**
* Get initial form values
* Needs to run from ngOnChanges because User in an input & is not ready in constructor
*/
ngOnChanges() {
if (this.User) {
const profile: Profile = this.User.profile;
this.profileFormStageOne.patchValue({
nationality: profile.nationality,
Проблема заключается в том, что это вызывается при начальном рендеринге (во время значения патча), если в поле «Национальность» уже установлено «другое».
Существуют ли альтернативные подходы или способы запускавыбрать изменение?