0

我有一个嵌套的 JS-Data 对象(即有父关系)

(注意所有代码都是咖啡脚本)

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,没有关联的实例。但是路径仍然需要嵌套在父对象中。

IE

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 资源创建一个自定义操作,该操作嵌套在父级中,但不会在子级实例上调用。

这可能吗?

4

1 回答 1

2

定义你的动作:

actions: {
  currentUsersFollow: {
    method: 'GET',
    endpoint: 'posts',
    pathname: 'current_users_follow'
  }
}

然后像这样调用它:

Follow.currentUsersFollow(213423)

它应该产生

GET /posts/213423/current_users_follow
于 2016-10-21T14:44:07.280 回答