如何使用Angular 2服务提供包含指向另一个资源的链接/ids的资源集合
How to provide a collection of resources that contains links/ids to another resource with an Angular 2 service?
我有一个用户集合。每个用户都有一个cards
阵列,该阵列由用户选择的卡的id
s组成。
user.cards = [10, 12, 24, 31]
我想要用户选择最多的10张卡片。
我有user.service.js
和card.service.js
,我想它们是DAO。card.service.js
看起来像这样(为了简单起见,使用了纯Promises
)。
(function(app) {
app.CardService = ng.core.Injectable({}).Class({
constructor: function() {},
getCards: function() {
return Promise.resolve(app.cards)
},
getCard: function(cardId) {
return Promise.resolve(app.cards.get(cardId));
},
getTop10Cards: function() {
// How would I go about doing this method?
}
})
})(window.app || (window.app = {}));
从逻辑上讲,我需要所有用户的列表,收集他们的cardIds
并将其聚合以找到最常用的卡。但CardService
是否应该使用UserService
(作为注射剂)?还是在另一个DAO中使用DAO是错误的做法?我是否应该有一个单独的集合,其中包含每个模型之间的链接(如关节表)?
为了帮助自己处理这个客户端问题,我研究了后端资源的样子。我想出了类似于"如何在RESTful API中处理多对多关系?"的方法。
这些是我的API端点可能的样子:/users
、/cards
、/cards/{cardId}/votes
。CCD_ 14包含定义用户和他们所选择的卡之间的关系的资源。
在代码中,我确实在card.service.js
中注入了vote.service.js
。当我GET
卡片时,我也用它们的votes
子集来组合它们。有关更多信息,请参阅"angular js模型关系"。
我希望这能帮助任何遇到这个问题的人。
干杯!
相关文章:
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 使用clickToggle并在单击另一个元素时关闭元素
- 使用javascript将动态表从一个html页面打印到另一个html页
- 如何在android中使用phonegap将文件从一个文件夹移动/复制到另一个文件夹
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 从Rally获取一个特定的标记,以便计算另一个字段中的值
- 无法从jquery Mobile导航栏重定向到另一个页面
- 如何在JQuery函数中定义一个值,然后调用另一个函数并使用该值
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- 如何在鼠标悬停时在另一个图像上滑动图像.
- WebResources嵌入式资源和Javascript如何在另一个嵌入式资源中使用它们
- 检查资源的id是否在ng重复中显示的另一个资源的id列表中
- 如何使用Angular 2服务提供包含指向另一个资源的链接/ids的资源集合
- 是否有任何事件在浏览器请求另一个资源(如图像)之前触发
- 从另一个域加载 CSS 和 JS 文件,并从一致的 URL 提供资源
- 从另一个javascript网络资源调用javascript函数
- 相同的控制器,相同的模板,相同的资源,但一个是嵌套状态,而另一个不是
- Angular服务:如何使用返回的资源对象's数据在另一个控制器功能中