2013-05-03 74 views
2

我只是试验用Emberjs构建一个小应用程序作为我的前端框架。如何处理ember.js中的对象ID?

所有应用程序都是,我可以使用文本框和按钮添加名称的列表,然后通过单击每个名称后面的删除按钮从列表中删除名称。

我正在通过REST API使用非常简单的Symfony2应用程序作为我的数据存储,并且当前可以向列表添加名称没有问题。我不明白的是如何去删除它们。

如果我向列表中添加一个新名称,它将不会有由数据库引擎分配的唯一ID(我的对象有一个ID和一个名称),所以当我删除它时,我无法将ID传递给DELETE API调用。

我该如何解决这个问题?我是否需要以某种方式在调用create API调用并更新对象时返回完整对象(带有ID)(如何使用Ember执行此操作?)或者还有其他方法可以实现吗?

编辑:新增更好地说明我的问题的图像:

enter image description here

+0

你能显示一些代码吗? – intuitivepixel 2013-05-03 22:40:10

+0

@intuitivepixel - 我可以,但这将是相当多的代码来说明一个简单的问题。这更多的是一个概念/最佳实践,问题。 – Anonymous 2013-05-03 22:42:25

+0

基本上,如果未提交,您可以从Store中删除记录。当记录仍然无法访问时,商店会为新记录提供内部ID。为什么你要删除API上的记录,如果它仍然没有被提交?并关于'我是否需要以某种方式返回完整的对象(带ID),当调用创建API ...'是的,返回整个对象的新ID分配 – intuitivepixel 2013-05-03 22:45:30

回答

4

正如在评论中已经提到的那样,当你创建一个新记录时,Store设置了一个记录的内部ID,那么当你提交到后端时,你的API应该方便地返回整个对象(使用它的新ID)然后将注意将新的服务器端生成的标识设置回到您在应用商店中新创建的记录中。

1

您的服务器应该序列化的ID回你烬应用。如果您使用Ember Data并且您的模型是DS.Model的扩展名,则不必在模型上定义id属性,但仍可以使用它。