0

我整天都在尝试建立一个评论系统,但似乎无法解决我遇到的问题,我使用 ng-repeat 加载评论:

<ul class="list-group commentHolder list-unstyled" ng-repeat="comment in comments">
    <li class="list-group-item">

    <p class="list-group-item-text">{{comment.commentcontent}}</p>
<div>

<a class="list-group-item-text" ng-click="showReply = ! showReply">Reply</a>
    <a class="list-group-item-text" ng-click="getReply({{commentid}})" >Show Replies</a>                        
</div>
.....
     </li>

<div class="replies" ng-repeat="reply in replies">
    {{reply.commentcontent}}
</div>
</li>
</ul>                           

所有评论和回复都在同一个表中,回复的 parentid

我通过单击的评论 id 返回所有带有 parentid 的回复,这些回复被放入 $scope.replies = data;

它将显示数据,但将在所有评论下都有它。

我尝试了一些东西,但这似乎不是一种“angularjs方式”。

我不确定如何在相关评论下显示数据。

任何帮助都会很棒。谢谢

- - - 编辑 - - - -

 <li ng-repeat="reply in comment.replies">
    {{reply.commentcontent}}
 </li>

这是添加到评论的功能

$scope.test102 = function(comment)
{
var replies = {"commentid":9000, "commentcontent":"reply comment text test text"};
comment.replies = replies;
}

现在没有任何值被添加到 ng-repeat 中以获取回复。

有什么想法吗?再次感谢。

4

1 回答 1

1

您需要确保回复绑定到 ng-repeat 循环中当前评论的回复。目前,您似乎有一个在 div 中重复的 $scope.replies :

<div class="replies" ng-repeat="reply in replies">
{{reply.commentcontent}}
</div>

如果你改变这个:

<a class="list-group-item-text" ng-click="getReply({{commentid}})" >Show Replies</a>

<a class="list-group-item-text" ng-click="getReply(comment)" >Show Replies</a>

getReply 方法应将回复添加到您作为参数传递的评论中。然后你可以像这样绑定到评论回复:

<div class="replies" ng-repeat="reply in comment.replies">
{{reply.commentcontent}}
</div>

看起来您希望回复是一个数组,但 test102 函数将单个对象添加到 comment.replies。

我做了一个plnkr来说明我的意思

于 2013-09-14T20:25:23.147 回答