Ember.js has_many没有加载到深层嵌套路由

时间:2016-03-13 07:21:33

标签: ember.js ember-data

鉴于我目前的路由器:

  1. 帖子
    • 创建
    • 修改
    • 评论
      1. 创建
    • 注释
      1. InnerComments
        • 创建
      2. InnerComment
        • 索引(post.comment.innerComment.index)
  2. Ember.js没有从后端加载任何现有的内部评论,但它在创建和保存它们方面做得很糟糕,如下图所示: enter image description here

    不仅我能够创建内部注释,只要我不重新加载页面,我也能够成功编辑它们......这种独特的行为告诉我这个问题看起来比较具体,但是我只是找不到它。下面的代码片段总结了按顺序加载内容的方式,但您也可以使用Ember Inspector查看Source Code和这两个屏幕截图:

    Screenshot 1 - 创建内部评论

    Screenshot 2 - 页面刷新。

    Post.Index (型号是帖子)

    {{render "post.comments.index" model}}
    

    Post.Comments.Index (模型是帖子)

    <ol>
        {{#each model.comments as |comment|}}
            <li>{{render "post.comment.index" comment}}</li>
        {{/each}}
    </ol>
    

    Post.Comment.Index (模型是评论)

     <!--Comment Text, Comment by x User, edit, etc-->
    {{render "post.comment.innerComments.index" model}}
    

    Post.Comment.InnerComments.Index (模型是评论)

    <ol>
        {{#each model.inner_comments as |comment|}}
            <li>{{render "post.comment.innerComment.index" comment}}</li>
        {{/each}}
    </ol>
    

    Post.Comment.InnerComments.Index (模型是一个内部评论)

     <!--InnerComment Text, InnerComment by x User, edit, etc-->
    {{model.text}}
    

1 个答案:

答案 0 :(得分:0)

序列化has_many :inner_comments上的一个缺失行是罪魁祸首,因为它在合并两个本地分支之间丢失了。

如果您遇到类似问题,请查看开发人员工具以获取网络事务。如果您的某个XHR请求缺少预期的返回有效负载(在我的情况下,每个注释请求的inner_comments),则问题出在您的后端......