Javascript 尝试使用this.activaterout.snapshot.params.id时,Ctx.post未定义
我正在从事一个在线论坛项目,我正在尝试实现一种查看帖子和评论的方法,但当我转到某个特定帖子的页面时,我发现以下错误: 此处是分配id值的位置:Javascript 尝试使用this.activaterout.snapshot.params.id时,Ctx.post未定义,javascript,angular,typescript,undefined,ctx,Javascript,Angular,Typescript,Undefined,Ctx,我正在从事一个在线论坛项目,我正在尝试实现一种查看帖子和评论的方法,但当我转到某个特定帖子的页面时,我发现以下错误: 此处是分配id值的位置: constructor(private postService: PostService, private activateRoute: ActivatedRoute, private commentService: CommentService, private router: Router) { this.postId = thi
constructor(private postService: PostService, private activateRoute: ActivatedRoute,
private commentService: CommentService, private router: Router) {
this.postId = this.activateRoute.snapshot.params.id;
this.commentForm = new FormGroup({
text: new FormControl('', Validators.required)
});
this.commentPayload = {
text: '',
postId: this.postId
};
}
ngOnInit(): void {
this.getPostById();
}
private getPostById() {
this.postService.getPost(this.postId).subscribe(data => {
this.post = data;
}, error => {
throwError(error);
});
}
这是我的邮政服务:
export class PostService {
constructor(private http: HttpClient) { }
createPost(createPostPayload: CreatePostPayload): Observable<CreatePostPayload>{
return this.http.post<CreatePostPayload>('http://localhost:9090/api/posts/create',createPostPayload);
}
getAllPosts(): Observable<Array<PostModel>> {
return this.http.get<Array<PostModel>>('http://localhost:9090/api/posts/all');
}
getPost(id: number): Observable<PostModel> {
return this.http.get<PostModel>('http://localhost:9090/api/posts/' + id);
}
getAllPostsByUser(name: string): Observable<PostModel[]> {
return this.http.get<PostModel[]>('http://localhost:9090/api/posts/by-user/' + name);
}
}
出口类邮政服务{
构造函数(私有http:HttpClient){}
createPost(createPostPayload:createPostPayload):可观察{
返回此.http.post('http://localhost:9090/api/posts/create,createPostPayload);
}
getAllPosts():可观察
.张贴
{{post.duration}}
通过
{{post.postName}
评论
{{comment.userName}
{{comment.duration}
{{comment.text}
我无法找到id保持未定义的原因。我正在使用@angular/cli 11.2.13
<div class="container">
<div class="row">
<hr />
<div class="col-md-9">
<div class="row post">
<div class="col-md-1">
<app-vote-button [post]="post"></app-vote-button>
</div>
<div class="col-md-11">
<span>
<span class="category-text"><a class="post-url" href="">{{post.categoryName}}</a></span>
<span> . Posted
<span> {{post.duration}} </span>
by
<a class="username" href="">{{post.userName}}</a>
</span>
</span>
<hr />
<a routerLink="post.url" class="post-title">{{post.postName}}</a>
<div>
<p class="post-text" [innerHtml]="post.description"></p>
</div>
<div class="post-comment">
<form [formGroup]="commentForm" >
<div class="form-group">
<textarea class="form-control" [formControlName]="'text'" placeholder="Your Thoughts?"></textarea>
</div>
<button type="submit" class="login float-right">Comment</button>
</form>
</div>
<div style="margin-top: 60px;" *ngFor="let comment of comments">
<div class="comment">
<div class="username">
<a routerLink="/user/comment.username">{{comment.userName}}</a>
</div>
<div>
<p>{{comment.duration}}</p>
</div>
<b>{{comment.text}}</b>
</div>
<hr />
</div>
</div>
</div>
</div>
</div>
</div>