angularjs $resource 和一对多关系

Posted

技术标签:

【中文标题】angularjs $resource 和一对多关系【英文标题】:angularjs $resource and one-to-many relationship 【发布时间】:2015-05-15 08:40:39 【问题描述】:

将 ngResource 用于复杂数据模型的正确方法是什么? 有无数单表示例,但几乎没有涵盖 1:n 和 m:n 关系。

假设一个简单的'parent' 1->n 'child'关系,并且入口点总是通过parent:是否需要为parent和child分别创建一个$resource,并为每个child调用save()何时创建新的相关子代,传递 parent_id?还是我的思维方式还没有进入 Angular 世界,我应该尝试 save() 只有 ngResource 处理其余部分的父级?

【问题讨论】:

【参考方案1】:

ngResource 很棒,但不能“真正”处理关系,并且可能缺少一些您需要的东西。您提出的建议 - “为父母和孩子创建一个 $resource,并在每次创建新的相关孩子时调用孩子的 save(),传递 parent_id” - 是正确的;但是我强烈建议您查看Restangular 或Restmod

两者都很棒,而且还有其他一些。我个人的建议是 Restmod,因为我发现它可以更好地处理人际关系。

【讨论】:

好吧,我是这么认为的,不知道是不是为了灵活性而走 $http 路更好。我不相信为了一个非常中心的需求而连接到外部依赖项。【参考方案2】:

$resource 只是通过 HTTP 请求实现NoSQL 数据存储范例的另一种实现。关于如何管理 NoSQL 实体之间的关系有很多参考资料(例如,many to many relationship with nosql (mongodb and mongoose))

【讨论】:

我不知道这已经被认为是 NoSQL 领域,但它更像是一种对象关系映射。我的后端是 SQLAlchemy / Flask,关系数据模型是应用程序的关键。感谢您的指导,我会更仔细地研究您的建议。

以上是关于angularjs $resource 和一对多关系的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 AngularJS 的 $resource 和 spring rest 控制器获取布尔值

了解 angularJS $resource isArray 属性

使用 ANGULARJS $resource 发布一个 JSON 数组

使用 typescript 的 IResourceClass 扩展 angularjs 的 $resource

AngularJS:具有嵌套资源的 $resource

了解 AngularJS 的 $resource