Итак, у меня есть angular 8 приложение.
И у меня есть несколько флажков. У меня также есть кнопка, которая вызывает другой компонент (диалог), где вы можете сделать выбор на некоторых данных. но если диалог закрывается, то флажки должны быть сняты.
Итак, это шаблон с флажком:
list.component
<mat-checkbox
(click)="$event.stopPropagation()"
(change)="$event ? onCheckboxChange($event, row) : null"
[checked]="selection.isSelected(row)"
>
</mat-checkbox>
list.ts:
selection = new SelectionModel<ParticipantInfoDTO>(true, []);
onCheckboxChange(event, row) {
const isChecked = event.checked;
const particpantId = row.participantId;
if (isChecked) {
this.participantIds.push(particpantId);
} else {
this.participantIds = this.participantIds.filter(id => id !== particpantId);
}
this.selection.toggle(row);
this.selectedParticipantsService.updateParticipantIdsList(this.participantIds);
}
, и это другой компонент:
EcheqSelectorComponent.ts:
.subscribe(
() => {
this.dialog.close();
//So what I have to fill in here so that all the checkboxes in the list.component will be unchecked
this.snackBar.open('De vcheq(s) zijn verstuurd', 'Ok');
},
error => {
console.error('Server error when assigning vcheq', error);
this.snackBar.open('Er ging iets mis bij het opsturen, probeer het later nog een keer', 'Ok');
this.dialog.close();
}
);
Так что мне нужно изменить, чтобы снять флажки, когда модальное закрыто?
Спасибо
Итак, это данные в компоненте list.ts:
const numSelected = this.selection.selected.length;
, которые я должен использовать в компоненте eceq-selector.
Но как это сделать?
Поэтому я пытаюсь сделать это следующим образом:
в echeq-selector:
constructor(
@Inject(ListComponent)
private listComponent: ListComponent,
}
и затем так:
this.listComponent.selection.clear();
Но тогда я получаю эту ошибку:
core.js:12584 ERROR Error: Uncaught (in promise): Error: Can't resolve all parameters for EcheqSelectorComponent: (?, [object Object], [object Object], [object Object], [object Object], [object Object], [object Object]).