У меня есть требование, когда при вводе счетчика в поле формы ввода на основе номера счетчика флажок в таблице должен автоматически проверяться, я могу это сделать, но я не могу его обновить, если я уменьшите количество в поле, в таблице флажок снят, основываясь на количестве, но если я увеличу количество в это время, автоматическая проверка для флажка не применяется.
addDamaged(id,index) {
let damageCheckBoxes = this.damageCheckBoxes.toArray();
this.materialList = this.dataSource.data;
if(this.materialList[index]['id'] ===id && this.damagelist.length < this.secondFormGroup.get('count').value
&& this.secondFormGroup.controls['comment'].value && damageCheckBoxes[index].checked){
this.materialList[index]['isDamage'] = true;
if(this.materialList[index]['isDamage']){
this.materialList[index]['damage']= { comment :this.secondFormGroup.get('comment').value}; // add damge to meterial
this.damagelist.push(this.materialList[index]); // update damage list with items
}
damageCheckBoxes[index].checked = true;
} else{
damageCheckBoxes[index].checked = false;
this.materialList[index]['isDamage'] = false;
delete this.materialList[index]['damage'];
for (let dIndex in this.damagelist){
if(this.damagelist[dIndex].id === this.materialList[index]['id']){
this.damagelist.splice(dIndex,1);
}
}
}
this.dataSource.data = this.materialList ;
}
checkDamage(){
let damageCheckBoxes = this.damageCheckBoxes.toArray();
this.materialList = this.dataSource.data;
let count = this.secondFormGroup.get('count').value;
for(let i = 0;i<count;i++){
if(this.secondFormGroup.get('comment').value && this.damagelist.length<this.secondFormGroup.get('count').value ){
this.materialList[i].damage = { comment :this.secondFormGroup.get('comment').value};
this.damagelist.push(this.materialList[i]);
// console.log( this.materialList[i].damage);
}
else{
damageCheckBoxes[i].checked = false;
this.materialList.forEach(ele=>{
ele.damage = null;
})
this.damagelist = [];
if(this.secondFormGroup.get('comment').value){
this.materialList[i].damage = { comment :this.secondFormGroup.get('comment').value};
damageCheckBoxes[i].checked=true;
this.damagelist.push(this.materialList[i]);
console.log( this.damagelist);
}
/* for (let dIndex in this.damagelist){
if(this.damagelist[dIndex].id === this.materialList[i]['id']){
this.damagelist.splice(dIndex,i);
}
}
*/
}
}
}
В коде метод addDamage используется для проверки и снятия флажка вручную на основе количества. Метод checkdamage используется для автоматической проверки на основе количества. Если я уменьшаю количество, оно снимает отметку со своего штрафа, но если я увеличиваю количество, оно устанавливает флажок на основе количества. Может ли кто-нибудь помочь решить эту проблему