繁体   English   中英

在深度填充的对象中以角度显示数据

[英]Angular displaying data in a deep populated object

HTML

<div ng-controller="topicController">
     <a href="#/dashboard">Dashboard</a> | <a href="#/topics">Topics</a> | <a href="#/users">Users</a>

    <h4>{{topic.user_name}} posted a topic</h4>

    <h2>{{topic.topic}}</h2>
    <h4>Description: {{topic.description}}</h4>
    <div ng-controller="postController">
        <label>Post Your Answer here</label>
            <form>
                <textarea name="post" ng-model="new_post.post"></textarea>
                <input type='submit' value='Submit' ng-click='addPost(users._id, topic._id, users.name)'>
            </form>

            <div ng-repeat="x in topic.posts">
                <h4>{{x.post}}</h4>
                <p>Likes:{{x.up_vote}} Dislikes:{{x.down_vote}}</p>
                <ul ng-repeat="i in topic.posts[x].comments">
                    <li>{{topic.posts[x].comments[i].comment}}</li>
                </ul>
                <div ng-controller="commentController">
                <form>
                        <textarea name="comment" ng-model="model.comment"></textarea><br>
                        <input type="submit" value="Submit" ng-click="addComment(users._id, x._id, users.name)">
                </form>
            </div>
        </div>
    </div>
</div>

如您在下图中所看到的,我拥有所有已填充数据的数据,主题对象,主题内的帖子和帖子内的注释。

在我的html中,我可以正确显示主题内容和帖子,但是很难显示评论。

注释已添加到数据库,但未显示。 我有一个ng-repeat,可以在每个帖子的每个评论中写出内容,但它不会显示出来。 附加图像以在控制台中显示整个对象。

屏幕截图

我的ng-repeat错误吗?

您的xpost对象,而不是索引。 所以你内在的ng-repeat应该是

<ul ng-repeat="c in x.comments">
    <li>{{c.comment}}</li>
</ul>

您误会了ng-repeat x代表的注释。 x是实际的评论对象-帖子的comments数组中的每个项目。 因此topic.posts[x]毫无意义。 它应该只是x

因此,显然,将其重命名为comment ,而不是x

温馨提示:出于性能原因,请始终将ng-repeat表达式与track by一起使用。 在您的情况下,将track by comment._id进行track by comment._id

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM