Просто сбросьте все items
из ccdList
.
Нужны небольшие изменения в вашей функции editCondition
editCondition(rowData) {
this.ccdList.forEach(item=>{
item.isViewDetails = false;
})
console.log(rowData);
rowData.isViewDetails = !rowData.isViewDetails;
}
Для внешнего клика используйте HostListener
@HostListener('document:click', ['$event'])
windowClick($event) {
let exceptElementFound = false;
Object.keys($event.target.classList).forEach(key => {
if ($event.target.classList[key] == "fa-ellipsis-h") {
exceptElementFound = true;
}
})
if (!exceptElementFound) {
this.ccdList.forEach(item => {
item.isViewDetails = false;
})
}
}
Рабочая копия здесь - https://stackblitz.com/edit/angular-bbyz8n