我有一个嵌套的JS-Data对象(即具有父关系)
(NB所有代码均为coffeescript)
Follow = DS.defineResource
name: "follow"
endpoint: "follows"
relations:
belongsTo:
post:
localField: "post"
localKey: "post_id"
parent: true
actions:
currentUsersFollow:
method: "GET"
pathname: "current_users_follow"
我需要调用自定义操作currentUsersFollow
但是我不想在Follow
的实例上调用它。它是类/index
之类的类方法,没有关联的实例。但是,路径仍然需要嵌套在父对象中。
即
Follow.currentUsersFollow({post_id: 213423})
# => http://ourapp.com/api/v1/follows/current_users_follow
#
# I would like this to generate:
# http://ourapp.com/api/v1/posts/213423/follows/current_users_follow
#
# i.e. it's missing the nesting: /posts/213423
.findAll
现在,如果您使用.findAll()
执行此操作,那么只要您传递相关的父ID,它就会生成嵌套路由:
Follow.findAll({post_id: 213423})
# => http://ourapp.com/api/posts/213423/follows
正如您所看到的那样,正确指定了帖子并将其发送到通用端点。
简而言之,我想为我的JS-Data资源创建一个自定义操作,该操作嵌套在父级中,但不在子级实例上调用。
这可能吗?
答案 0 :(得分:1)
定义你的行动:
actions: {
currentUsersFollow: {
method: 'GET',
endpoint: 'posts',
pathname: 'current_users_follow'
}
}
然后这样称呼:
Follow.currentUsersFollow(213423)
它应该产生
GET /posts/213423/current_users_follow