Я пытаюсь отправить список от родительского к дочернему компоненту, чтобы привязать его к автозаполнению мата.
Ниже мой родительский компонент //parentcomponent.html
<mat-card style="margin: 1px;">
<search-form [(messageTypeList)]="messageTypeList" [rowData]="rowData | async">
</search-form>
</mat-card>
В моем родительском компоненте ts file
//parentcomponent.ts
messageTypeList: Messagetype[] = [];
ngOnInit() {
const messageTypeList = this.store.select(fromStore.getMessageTypeListData);
messageTypeList.pipe(takeUntil(this.unsubscribe$)).subscribe(msgTypeList => {
if (msgTypeList.length > 0) {
for (var i = 0; i < msgTypeList.length; i++) {
this.messageTypeList.push(msgTypeList[i]); // this messageTypeList is send to child component
}
}
else {
this.store.dispatch(new fromStore.GetMessageTypeList({}));
}
})
Ниже мой дочерний компонент
//childcomponent.ts
@Input() messageTypeList: Messagetype[];
ngOnInit() {
console.log('messagetypelist='+this.messageTypeList); // getting data as []
}
После инициализации родительского объекта инициализируется дочерний процесс, но асинхронный вызов ngrx все еще не завершен, и, таким образом, данные еще не представлены в дочернем объекте (в ngOnInit
)
После нажатия ngOnInit
у потомка, затем у родителя, msgTypeList
заполняется (асинхронный вызов завершен), но , что доступные данные сейчас не отправляются дочернему .
Нужно ли преобразовывать в наблюдаемый для получения обновленных данных или есть какой-либо другой способ.