修改Ember JS中的POST url



你能解释一下如何在适配器中使用urlForCreateRecord来更改帖子url吗?我有两个模范员工和一对多关系的任务。

//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一样创建。如何获得所需的帖子url?

您可以自定义任务模型的适配器。

ember generate adapter task

之后,您可以覆盖一个或多个urlFor方法

//app/adapters/task.js
import ApplicationAdapter from './application';
export default ApplicationAdapter.extend({
urlForCreateRecord(modelName, snapshot) {
return 'employee/7/tasks';
}
});

最新更新