Javascript AngularJS:组件树&;如何处理新创建实体的ID(通过HTTP)

Javascript AngularJS:组件树&;如何处理新创建实体的ID(通过HTTP),javascript,angularjs,http,angularjs-directive,Javascript,Angularjs,Http,Angularjs Directive,我用的是角度1。我有一个todo列表应用程序,其中一个智能(容器)组件执行服务器端交互,一个哑/纯/无状态表示组件显示todo列表和一个文本字段以创建新的todo列表。演示组件有一个onCreate事件绑定,因此父组件可以在创建时向服务器发布Todo <todo-container> <todo-list todos="vm.todos" on-create="vm.postTodoToServer($event)"> </todo-list> </to

我用的是角度1。我有一个todo列表应用程序,其中一个智能(容器)组件执行服务器端交互,一个哑/纯/无状态表示组件显示todo列表和一个文本字段以创建新的todo列表。演示组件有一个
onCreate
事件绑定,因此父组件可以在创建时向服务器发布
Todo

<todo-container>
<todo-list todos="vm.todos" on-create="vm.postTodoToServer($event)"> </todo-list>
</todo-container>

演示组件中的每个
Todo
都应该有一个ID,以便可以执行PUT/PATCH/DELETE操作(我们将在将来为
实现
onUpdate
onDelete
绑定。但是,对于新添加的
Todo
s,在
Todo
发布到服务器之前,我不会知道该ID。因此,
必须在服务器最终响应时提供
新创建的
Todo
的ID。)美国


如何以优雅的方式处理此用例而不将两个组件紧密耦合?我可能希望在应用程序的其他位置的不同容器中使用
(可能没有服务器端交互).

一个选项是,当数据仅存在于客户端时,使用实用程序库中的UUID生成器作为临时id。您还可以将id设置为负值,以便您的服务器进程知道,当发布待办事项时,它实际上还不存在于服务器上,因此需要根据ser为其分配真实id然后用POST调用返回的服务器分配的真实数据覆盖待办事项列表项

例如,Lodash(实用程序库)具有唯一的id生成器功能