在 Ember JS 中修改 POST url
Modifying POST url in Ember JS
能否请您解释一下如何在适配器中使用 urlForCreateRecord 来更改 post 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();
post 请求应该发送到 URL,如 /employee/:employee_id/tasks。
但是 url 正在像 /tasks 一样被创建。
如何达到要求的 post url?
您可以 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';
}
});
能否请您解释一下如何在适配器中使用 urlForCreateRecord 来更改 post 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();
post 请求应该发送到 URL,如 /employee/:employee_id/tasks。 但是 url 正在像 /tasks 一样被创建。 如何达到要求的 post url?
您可以 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';
}
});