我正在开发一个相对简单的任务应用程序,我无法弄清楚在一个Task对象中设置ID(以及任何可能的其他服务器创建内容)的最佳方法返回POST请求。例如;
if ($page.id === 'menuManager') {
[... CONDITIONAL CODE HERE...]
}
目前我已将新任务推送到// POST Data
{
title: 'The title for the task',
due: '2016-01-01'
}
// Response
{
id: 123,
title: 'The title for the task',
due: '2016-01-01'
}
函数中发生的集合中,但这意味着任务不会立即添加到列表(以及页面)中。允许将任务对象立即推送到集合中,然后是API更新响应或替换该对象的最佳方法是什么?
我考虑过编辑集合中的最后一个任务,但显然可以在返回第一个任务之前添加第二个任务。
以下代码显示了当前实现,其中列表组件和子表单组件在响应时发出事件。
subscribe
谢谢!
答案 0 :(得分:0)
不知道这是否是最好的方法,但由于任务对象通过引用传递到addTask
方法,我只是立即发出事件,以便任务出现在UI中,然后我在API响应时设置任务对象的ID;
addTask(task) {
// Emit immediately
this.taskAdd.emit(task);
this.taskService.create(task)
.subscribe(savedTask => {
// Update the task that is now visible in the UI by reference
task.id = savedTask.id;
});
// Full reassignment to prevent further by-reference side effects
this.task = {};
}