post 如何到 emberjs 中的嵌套路由

how do post to a nested route in emberjs

我在 /campaigns/{show} 有一条路线,它显示一个带有操作按钮的页面 'join campaign'

i.e. /campaigns/{campaignId}
e.g. /campaigns/campaign-1

/apps/templates/campaigns/show.hbs:

...
 <button type="button" {{action "joinCampaign"}}>join campaign</button>
...

/apps/controllers/campaigns/show.js:

import Ember from 'ember';

export default Ember.Controller.extend({
  actions: {
    joinCampaign: function() {
      // how to do a JSONAPI RESTful POST to /campaigns/{campaignId}/memberships ?
    }
  }
});

单击 'join campaign' 按钮后,我希望对休息服务执行 JSONAPI Restful POST 侦听 POST 到 /campaigns/{campaignId}/memberships

我已经在ember

中创建了相应的嵌套路由
i.e. /campaigns/{campaignId}/memberships
e.g. /campaigns/campaign-1/memberships

两个可能的选择:

  1. 如果您使用的是 ember 数据,请定义一个包含与您的 API 端点匹配的字段的模型,并使用 this.store.createRecord(...) to create the model. By default, ember-data will try to "guess" the URL based on some assumptions. Since your assumptions do not match, you will need to customize the url in the adapter.

  2. 如果你没有使用ember-data,你可以使用Ember.$.ajax(一个方便的内置alias for jquery)手动构建请求。

请注意,在您的 ember 应用中定义 URL 是不够的:如果您希望不同计算机上的两个用户看到彼此保存的数据,您将需要一个后端服务器RESTful API,与您的 ember 应用分开。