#7 ✏️Edit Post

Read a blog post

We will add the feature of reading a blog. Create a new blog component. Right-click on the folder 📁components and then navigate to 'Angular Generator', select 'Component' and provide the name ‘blog’.

Add the router link for this component in app.module.tsarrow-up-right as shown below

{ path: 'blog/:id/:slug', component: BlogComponent },

Add the following method definition in blog.service.tsarrow-up-right file.

getPostbyId(postId: string) {
    const  userDetails = this.db.doc('blogs/' + postId).valueChanges();
    return  userDetails;
}

Open src/app/components/blog/blog.component.tsarrow-up-right and add import definitions as shown at https://github.com/AnkitSharma-007/blogsite/blob/master/src/app/components/blog/blog.component.ts#L2-L4arrow-up-right

import { Post } from 'src/app/models/post';
import { ActivatedRoute } from '@angular/router';
import { BlogService } from 'src/app/services/blog.service';

Now put the code inside BlogComponent class as shown at https://github.com/AnkitSharma-007/blogsite/blob/master/src/app/components/blog/blog.component.ts#L13-L30arrow-up-right

Open src/app/components/blog/blog.component.htmlarrow-up-right and replace what is there with the code shown below.

{{postData.title}}

{{postData.createdDate | date:'longDate'}}

Finally we will add styling for BlogComponent. Open src/app/components/blog/blog.component.scss and replace what is there with the style definitions shown at https://github.com/AnkitSharma-007/blogsite/blob/master/src/app/components/blog/blog.component.scssarrow-up-right

Delete a blog post

We will add the feature of deleting a blog. Add the following code in the src/app/services/blog.service.tsarrow-up-right.

Open src/app/components/blog-card/blog-card.component.tsarrow-up-right and add the delete method definition as shown at https://github.com/AnkitSharma-007/blogsite/blob/master/src/app/components/blog-card/blog-card.component.ts#L26-L34arrow-up-right

Edit an existing blog post

We will now implement the functionality to edit an existing blog. Add the following code definition in blog.service.tsarrow-up-right.

Add the routing for edit functionality in app.module.ts as shown at https://github.com/AnkitSharma-007/blogsite/blob/master/src/app/app.module.ts#L44arrow-up-right

We will fetch the id of the blog from the URL with the help of ActivatedRoute class. Open blog-editor.component.tsarrow-up-right and add the following code in the constructor.

Update the ngOnInit method inside the BlogEditorComponent class as shown at https://github.com/AnkitSharma-007/blogsite/blob/master/src/app/components/blog-editor/blog-editor.component.ts#L31-L43arrow-up-right

We will add the method to set the edit form when we click on “Edit” button on blog card in the home page. The method definition is shown below.

Upon clicking on Save we need to handle to case of both adding a new blog as well as editing an existing blog. Hence we will update the saveBlogPost as shown at https://github.com/AnkitSharma-007/blogsite/blob/master/src/app/components/blog-editor/blog-editor.component.ts#L68-L83arrow-up-right

This completes our application. We learned how to create a simple blogging application using Angular on frontend and cloud firestore as database.

Last updated