我是余烬的新手。这就是我面对的。我用python/Django编写了后端RESTAPI。它在/api/works/
上提供以下json响应
[
{
"id": 17,
"title": "about us",
"description": "some project",
"owner": "admin"
},
{
"id": 19,
"title": "test1 profit project",
"description": "dev null",
"owner": "test1"
}
]
同样在细节视图上,例如:/api/works/17/
:
{
"id": 17,
"title": "about us",
"description": "some project",
"owner": "admin"
}
还有/api/works/17/tasks/
用于列出工作任务
[
{
"id": 2,
"title": "secondWorkTask",
"description": "task2 description",
"due_date": "2016-09-26",
"assign": 1,
"project": "about us"
},
{
"id": 3,
"title": "some task name",
"description": "some task description",
"due_date": "2016-08-27",
"assign": 2,
"project": "about us"
}
]
在前端,我使用的是ember cli version2.7.0+ember-django-adapter。我可以毫无问题地获得/api/works。你知道吗
ember上的序列化程序要获取项目:
export default DRFSerializer.extend({
normalizeFindAllResponse(store, primaryModelClass, payload, id, requestType) {
payload.data = payload;
return this._super(...arguments);
}
});
我想实现的是在余烬端加载余烬端的工作细节url(emberexample-app.com/app/17/
)时,它必须显示所有任务。目前我可以通过上面的序列化程序通过这个url /api/works/17/
获得工作细节。但是我怎样才能得到任务呢?请帮我想办法解决这个问题。你知道吗
序列化程序用于自定义数据的加载和保存(或序列化和反序列化)。你知道吗
要自定义URL,必须使用适配器(例如RESTAdapter是我最常用的适配器)。你知道吗
如果您想创建(
urlForCreateRecord
)或更新(urlForUpdateRecord
)任务,这将起作用,但如果您只想将belongsTo
关系之后的work.get('tasks')
转换为GET http://endpoint/work/<work_id>/tasks
,这可能无法直接起作用,至少在我的情况下,它“不起作用”我发现一个非常有效的解决方案是将属性
links
作为普通对象添加到父对象中,该父对象包含指向要作为属性检索的不同子模型的链接。你知道吗像这样: 你知道吗
在本例中,当Ember尝试从工作模型获取tasks属性时,它将获取
work.links.tasks
包含的URL。你知道吗相关问题 更多 >
编程相关推荐