如何在emberjs中发布到嵌套路由

时间:2017-04-30 06:24:12

标签: ember.js ember-data

我在/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,以监听/campaigns/{campaignId}/memberships

的POST

我在ember中创建了相应的嵌套路径

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

1 个答案:

答案 0 :(得分:1)

两种可能的选择:

  1. 如果您使用的是ember数据,请定义一个包含与您的API端点匹配的字段的模型,并使用this.store.createRecord(...)创建模型。默认情况下,ember-data会尝试根据某些assumptions“猜测”该网址。由于您的假设不匹配,您需要customize the url in the adapter

  2. 如果您不使用ember-data,则可以使用Ember.$.ajaxalias方便的内置jquery)手动构建请求。

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