Один простой и быстрый способ для вас - пользователь @Input
(не забудьте импортировать его из @angular/core
) в ваш дочерний компонент, например:
export class TablesComponent implements OnInit {
constructor() { }
@Input()
returnedArray: Premium[] = [];
ngOnInit(): void { }
}
, а затем в родительском template.html
передать данные о родителях следующим образом:
<div>
<app-tables-component [returnedArray]="premiumsO"></app-tables-component>
</div>
РЕДАКТИРОВАТЬ: Согласно комментариям ниже
Добавьте свой Array
в свой сервис, сделайте его заметным и подпишитесь на него.Например:
@Injectable()
export class HttpService {
premiumsO: BehaviorSubject<Premium[]> = new BehaviorSubject<Premium[]>();
constructor(private http: HttpClient) { }
public getData4(url: string): void {
this.http.get<Premium[]>(url).subscribe(data => {
this.premiumsO.next(data['premiumList']);
});
}
}
А затем в контроллерах вашего родителя и потомка подпишитесь на premiumsO
, например:
export class TablesComponent implements OnInit {
constructor(private httpService: HttpService) { }
private subscription: Subscription;
returnedArray: Premium[] = [];
ngOnInit(): void {
this.subscription = this.httpService.premiumsO.subscribe(data => this.returnedArray = data);
}
ngOnDestroy() {
this.subscription.unsubscribe().
}
}
Сделайте то же самое с вашим родителем.Не уверен, что это правильное решение, но я бы сделал это так.