10.8: Sending Messages
Now we'll work on getting the send message functionality from the PhotoEditor component functional.
Add sendMessage() to UserService
We'll start off by adding a sendMessage() method to the UserService. This will again be very similar to other methods we've written:
sendMessage(id: number, message: Message) {
return this._http.post<Message>(this.baseUrl + 'users/' + id + '/messages', message);
}Update MemberMessagesComponent
Add a new property to member-messages.component.ts called newMessage.
newMessage: any = {};Also, add a new method called sendMessage():
sendMessage() {
this.newMessage.recipientId = this.userId;
this._userService.sendMessage(this._authService.decodedToken.nameid, this.newMessage).subscribe(message => {
this.messages.unshift(message);
this.newMessage.content = '';
}, error => {
this._alertify.error(error);
});
}Update MemberMessges Template
Next, in member-messages.component.html - update the <form> in the footer to:
<div class="card-footer">
<form #messageForm="ngForm" (ngSubmit)="messageForm.valid && sendMessage()">
<div class="input-group">
<input
type="text"
class="form-control form-control-sm"
required
name="content"
[(ngModel)]="newMessage.content"
placeholder="Send a private message">
<span class="input-group-btn">
<button
class="btn btn-primary btn-sm"
[disabled]="!messageForm.valid">Send</button></span>
</div>
</form>
</div>It should work now! Open the browser and test it out.

Last updated