2013-05-03 68 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屬性,但仍可以使用它。