#angular #rxjs #angular-material #rxjs-observables
#angular #rxjs #angular-материал #rxjs-наблюдаемые
Вопрос:
У меня есть component1.ts:
export class Component1 implements OnInit, AfterViewInit {
public inputData1: any[] = [];
public inputData2: any[] = [];
public inputData3: any[] = [];
private sub: Subscription;
ngOnInit() {
this.sub= this.service.dataObservable.subscribe((val: any) => {
try {
this.inputData1 = some logic to filter input data1 from val. <--- Here this.inputdata1/2/3 says undefined after assignment.
this.inputData2 = some logic to filter input data2 from val.
this.inputData3 = some logic to filter input data3 from val.
}
catch (ex) {
}
}
component.html
<mat-card class="tab-card">
<app-component2 [inputData1]='inputData1' [inputData2]='inputData2' [inputData3]='inputData3' >
</app-component2>
</mat-card>
component2.ts
export class Component2 implements OnInit {
inputData1Columns: string[] = ['col1', 'col2'];
@Input() inputData1: any[] = [];
inputDataSource1 = new MatTableDataSource(this.inputData1);
inputData2Columns: string[] = ['col1', 'col2'];
@Input() inputData2: any[] = [];
inputDataSource2 = new MatTableDataSource(this.inputData2);
inputData3Columns: string[] = ['col1', 'col2'];
@Input() inputData3: any[] = [];
inputDataSource3 = new MatTableDataSource(this.inputData3);
constructor() {}
}
По какой-то причине, когда запускается подписка и не назначаются входные данные 1, 2,3. Когда я ставлю точку останова, она говорит, что inputdata1 не определено. Чего мне не хватает?
Комментарии:
1. Ваш inputdata1,2,3 не определен в вашем дочернем компоненте или в вашей подписке?
2. @Marek W В моей подписке это не определено, оно также должно быть не определено в дочернем компоненте
3. По сути, данные не передаются в дочерний компонент
4. @user9969157 откуда вы знаете, что данные не передаются дочернему компоненту? Устанавливаете ли вы inputData1 / 2 / 3 внутри ngOnInit внутри component2.ts также или только в определении класса?