NB.Вопрос не в , как заставить его работать (так как могу, как объяснено внизу).Это скорее о , почему я могу заставить его работать таким образом, а не каким-либо другим.
Я разработал такой компонент.Это строка данных, которая может хранить кучу или несколько строк данных.Следовательно, в каждом таком случае у нас есть как onRemoval (вызывается, когда пользователь нажимает на значок удаления), так и onRemove (вызывается, когда слышится излученный чет).
@Output() remove: EventEmitter<number> = new EventEmitter<number>();
...
onRemoval() {
console.log("being removed: " + this.id);
this.remove.emit(this.id);
}
onRemove(id: number) {
console.log("removing: " + id);
if (!id)
return;
this.subRows.splice(id, 1);
}
Я уверен, что упускаю что-то глупое, но что удивляет меня, когда я пытаюсь отладить, так это то, что переданное значение является правильным индексом, а полученное значение - нет.Это не определено .
Соответствующая часть разметки, которую я пробовал, выглядит следующим образом.Я также пробовал с пустыми парантезами, а также без парантезов.
<div *ngIf="unfolded">
<app-data-row *ngFor="let subRow of subRows"
(remove)="onRemove(id)"
[config]="subRow"></app-data-row>
</div>
Я гуглил это, но, насколько я могу судить, я следовал правильному подходу, используя EventEmitter ,Кроме того, кажется, что установка работает, насколько событие отправлено и получено.Это просто значение id , которое, кажется, не установлено должным образом.
Единственный способ заставить его работать, это вызвать переменную точно $ event и больше ничего.Это я делаю что-то глупое или это требуемый синтаксис ?!Я имею в виду, даже * $ id $ не помог ...