Angular - 如何动态显示对评论的回复

时间:2017-11-25 15:42:17

标签: angular

我有帖子,帖子有很多评论,评论可以有很多回复。

查看帖子时,初始评论会加载。在每条评论下都有一个按钮,上面写着"显示回复"类似于youtube。如何动态添加dom元素以便我可以显示评论的回复。

我看过了 1. https://angular.io/guide/dynamic-component-loader 2. ViewChild

但我不明白两者之间的区别?我应该使用哪一个或者我应该如何处理我的用例的解决方案。

1 个答案:

答案 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标志以呈现回复。