pushToChild
будет распространяться среди детей, поэтому давайте не будем его использовать. Самым простым способом, который я могу придумать, является передача значений непосредственно дочерним элементам с использованием дочернего элемента DOM, преобразованного в объявление переменной (#child
), которое является уникальным при циклическом выполнении.
.ts
import { Component } from '@angular/core';
import { ChildComponent } from './child-component/child.component';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
object: { [key: number]: string } = { 2: 'foo', 1: 'bar' };
push(value: any, child: ChildComponent) {
child.data = value;
}
}
. html
<span>
<p>Some dummy list</p>
<div *ngFor="let item of object | keyvalue"
style="background:gray; margin-top:0.5rem">
Click button to push value: {{ item.key }} to child
<button (click)="push(item.key, childRef)">Push</button>
<child-component #childRef></child-component>
</div>
</span>