I have 2 component parent (Login Screen) and a child (user-list). Parent component has dropdowlist. The grid loads according to the item chosen in the drop down list I need to fire function of the child component and this is not working for me. I have the following code: parent component html:
I have the following code:
<div>[items]="UserTypeSelectItems"[(ngModel)]="UserTypeId" id="fieldType"
bindLabel="value" bindKey="key" (change)="changeUserType()" [clearable]="false">
</div>
<app-user-list></app-user-list>
parent component ts:
I have the following code:
export class Login-ScreenComponent implements OnInit {
@ViewChild(UserListComponent)child:UserListComponent;
userTypeSelectItems: Array<SelectItem>;
userTypeId: any;
items: any;
constructor(
private userTypeSettingsService: userTypeSettingsService,
) {
this.userTypeSettingsService.getuserTypes().subscribe((data) => {
this.userTypeSelectItems = data;
if (
this.userTypeSelectItems &&
this.userTypeSelectItems.length > 0
) {
this.userTypeId =
this.userTypeSettingsService.selectedContractTypeId ??
this.userTypeSelectItems[0].key;
this.userTypeSettingsService.setContractTypeId(this.contractTypeId);
this.userTypeSettingsService.fillSelectedFields(this.userTypeId).subscribe(dataFields => {
this.items = dataFields;
this.child.getUser();
});
}
});
}
changeUserType() {
this.child.getUser();
}
child component ts:
I have the following code:
getUser() {
this.loading = true;
this.userService
.getAllUsers(this.userTypeId)
.pipe(finalize(() => (this.loading = false)))
.subscribe(
(data) => {
this.rows = data.map(notif => {
return {
user_status_id: status_id,
});
},
(err) => this.toastr.error(err),
() => (this.loading = false)
);
} '''''''