我有帖子,帖子有很多评论,评论可以有很多回复。
查看帖子时,初始评论会加载。在每条评论下都有一个按钮,上面写着"显示回复"类似于youtube。如何动态添加dom元素以便我可以显示评论的回复。
我看过了 1. https://angular.io/guide/dynamic-component-loader 2. ViewChild
但我不明白两者之间的区别?我应该使用哪一个或者我应该如何处理我的用例的解决方案。
答案 0 :(得分:1)
假设您的数据类似于
comments = [
{
comment: '...',
showReplies: false,
replies: [
{
comment: '...',
},
...
]
},
...
];
我会使用嵌套的ngFor
<comment *ngFor="let comment of comments">
<ng-container *ngIf="comment.showReplies">
<reply *ngFor="let reply of comment.replies">
...
</reply>
</ng-container>
</comment>
并切换showReplies
标志以呈现回复。