在Ember JS中修改POST网址

时间:2018-10-31 06:32:10

标签: ember.js ember-cli

能否请您解释一下如何在适配器中使用urlForCreateRecord来更改发布网址? 我有两个模范员工,并且任务之间存在一对多的关系。

//Employee model
import DS from 'ember-data';

export default DS.Model.extend({
    empId : DS.attr(),
    password : DS.attr(),
    email : DS.attr(),
    tasks : DS.hasMany('task')
});

//Task model
import DS from 'ember-data';

export default DS.Model.extend({
    name : DS.attr(),
    description : DS.attr(),
    startDate : DS.attr(),
    endDate : DS.attr(),
    employee : DS.belongsTo("employee")
});

现在,我想创建一个任务记录。 我正在创建这样的任务记录

let self=this;
let employee=this.store.peekRecord("employee",1);
let task=this.store.createRecord("task",{
    name:self.get("name"),
    description:self.get("description"),
    startDate:self.get("startDate"),
    endDate:self.get("endDate"),
    employee:employee
});
task.save();

发布请求应该转到/ employee /:employee_id / tasks之类的URL。 但是该URL的创建方式类似于/ tasks。 如何获得所需的发布网址?

1 个答案:

答案 0 :(得分:1)

您可以customize the adapter创建任务模型。

ember generate adapter task

之后,您可以覆盖一个或多个 urlFor-methods

//app/adapters/task.js
import ApplicationAdapter from './application';

export default ApplicationAdapter.extend({
  urlForCreateRecord(modelName, snapshot) {
    return 'employee/7/tasks';
  }
});