Я использовал реактивные формы, и значения присваиваются html, а реактивные формы связаны с массивом объекта. Итак, какое бы действие я ни выполнял, оно должно использоваться для сравнения объектов с существующим объектом. Поэтому я использовал один массив методов сравнения объектов. Но здесь предыдущее значение также связывается с новым значением, которое было присвоено форме.
Я хочу, чтобы вновь отредактированное значение и старое значение были разделены отдельно, чтобы я мог сравнить, если значения свойства объекта являются Затем я могу включить сохранение.
ДЕМО: ДЕМО
ТС:
saveDetails() {
this.objectsAreSame(this.agentDetailsList, this.detailsToggle)
console.log(this.agentDetailsList);
console.log(this.detailsToggle);
console.log(this.objectsAreSame,"this.objectsAreSame")
}
objectsAreSame(a1, a2) {
for (var i = 0, len = a1.length; i < len; i++) {
for (var j = 0, len = a2.length; j < len-1; j++) {
if (a1[i].boolValue == a2[j].boolValue) {
return false
} else {
return true
}
}
}
}
ФОРМА:
private settingsInfoForm() {
if (!this.agentDetailsList) {
// Add
this.agentSettingsInfoForm = this.FB.group({
agentToogles: this.FB.array([this.detailsToggle]),
});
// this.authService.setDetailsData(this.agentSettingsInfoForm);
} else {
// Edit
if (this.agentDetailsList) {
this.detailsToggle = this.agentDetailsList
this.agentSettingsInfoForm = this.FB.group({
agentToogles: this.FB.array([this.detailsToggle]),
})
}
let settingsInfo = this.agentSettingsInfoForm.valueChanges.subscribe(data => {
this.formEdit = true;
console.log('agentSettingsInfoForm', this.formEdit)
})
}