У меня есть группа форм ниже в моем student.component.ts:
// Init locals
this.studentFormGroup = this._fb.group({
firstName : ['N/A', {updateOn: 'change'}],
lastName : ['N/A', {updateOn: 'change'}],
address : ['N/A', {updateOn: 'change'}],
phone : ['N/A', {updateOn: 'change'}],
gender : ['N/A', {updateOn: 'change'}],
email : ['N/A', {updateOn: 'change'}],
city : ['N/A', {updateOn: 'change'}],
country : ['N/A', {updateOn: 'change'}],
});
при каждом изменении значения элемента управления я вызываю webapi и сохраняю его в базе данных следующим образом. Но я не хочу вызывать webapi для поля gender, даже если пользователь изменит его значение.
this.studentFormGroup.valueChanges.subscribe(() => this.saveStudentRecord());
Здесь проблема заключается в приведенном выше однострочном коде, который вызывает saveStudentRecord при каждом изменении значения элемента управления.
Но, как я уже говорил, мне не нужно призывать к гендерному контролю.
поэтому в настоящее время я следую приведенному ниже способу изменения значений для каждого элемента управления.
this.studentFormGroup.get('firstName').valueChanges.subscribe(() => this.saveStudentRecord());
this.studentFormGroup.get('lastName').valueChanges.subscribe(() => this.saveStudentRecord());
this.studentFormGroup.get('address').valueChanges.subscribe(() => this.saveStudentRecord());
..
..
and so on except **gender** field
Но иногда, если у меня есть больше элементов управления на одной странице, мне приходится писать столько операторов, чтобы просто игнорировать одно поле.
Можно ли игнорировать изменение значения контроля пола следующим образом?
this.studentFormGroup.valueChanges.subscribe(() => this.saveStudentRecord());
saveStudent()
будет вызван с полом какmale
, затем пользователь изменит пол наfemale
, хорошо, функция не будет вызвана, но если пользователь снова изменит firstName, тогдаsaveStudent()
будет вызван с полом женщина? - person AJT82   schedule 26.10.2019