Component Events from NGXS
@Output() search = new EventEmitter<string>();@Component({
selector: 'app-email-list',
template: `
@for (message of messages(); track message) {
<app-message [message]="message" />
}
<app-button (click)="refresh()">Refresh messages</app-button>
`,
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: true,
imports: [MessageComponent, ButtonComponent]
})
export class EmailListComponent {
messages: Signal<Message[]> = this.store.selectSignal(MessagesState.getMessages);
@Output() messagesLoaded = new EventEmitter<Message[]>();
constructor(private store: Store) {}
refresh(): void {
this.store.dispatch(new LoadMessages()).subscribe(() => {
const messages = this.store.selectSnapshot(MessagesState.getMessages);
this.messagesLoaded.emit(messages);
});
}
}Last updated

