ng-admin

时间:2016-02-23 16:33:55

标签: ng-admin

我正在尝试使用ng-admin构建管理界面。 我正在使用reference字段将一个主要实体(例如,Post)链接到具有多对一关系的另一个实体(Comment)(一个Post有很多注释)。

在帖子的listView()上我必须显示每个帖子的最后一条评论,但正如我在relationships documentation of ng-admin中看到的那样我不能,因为在我的API中,外键不在主要内容上实体,但在次要实体上。

换句话说,我在评论实体中有post_id,但我正在发帖listView(),所以我无法访问任何评论。

此问题是否有解决方法?我可以从不包含引用键本身的实体引用外部实体吗?

我将添加一个简单的JSON以使示例更清晰。

// Post
{ 
  id: 1,
  title: 'post n1',
  body: 'bla bla bla very cool'
}

// Comment
{ 
  id: 1,
  body: 'yo bro'
  post_id: 1
}

谢谢

1 个答案:

答案 0 :(得分:1)

根据个人经验并查看参考资料,通过使用nga.field('comments', 'referenced_list') .targetEntity(comments) .targetReferenceField('post_id') (参见http://ng-admin-book.marmelab.com/doc/reference/Field.html#-referenced-list-field-type)看起来只是获得与您所寻找的结果相似的结果。第一句完全符合您的情况:

  

“referenced_list类型映射外键位于另一个实体中的一对多关系。”

使用它会是这样的:

listView

这可以为您提供与该帖子相关的评论列表。但是,由于这会返回一个列表,因此您无法将其与reference一起使用(您无法在列表中嵌套列表)。

不幸的是,我认为没有办法使用{{1}}来获得类似的结果,因为引用使用对象的一个​​键进行搜索。