我要做的是在渲染模板之前获取数据。我知道有很多这样的问题,但没有一个能解决我的问题。
我有一个类似的组件
<comments [page]="contracts"></comments>
我在不同页面上使用此组件来显示注释部分,来自后端的数据取决于页面参数。所以,我不能使用解析器,因为没有分隔页面的评论。它使用APP_INITIALIZER的第二种方式,但是以这种方式我无法获得@input页面,所以我无法从后端获得正确的评论。有什么想法吗?
我的组件代码
import { Component, Input, OnInit } from '@angular/core';
import { CommentsService } from './comments.service';
import { Comment } from './comment';
@Component({
selector: 'comments',
template: window['isMobile'] ? require('./comments-mobile.html') : require('./comments.html'),
styleUrls: ['./comments.scss']
})
export class CommentsComponent implements OnInit {
@Input() public page: string;
public comments: Comment[];
constructor(private commentService: CommentsService) {
}
public ngOnInit() {
this.commentService.getByPage(this.page).subscribe((comments) => {
this.comments = comments;
// view still not rendered, so I can't add swipe here
});
}
}
这是我的HTML
<div *ngIf="comments">
<div *ngFor="let comment of comments"></div>
</div>