2013-10-18 136 views
0

我正在用AngularJS創建我的網站的「討論」模塊。在AngularJS中嵌套資源

我親眼兩種資源,爲客戶< - >服務器的通信:

  1. 討論$資源(用於檢索討論有關的相關信息,如「標題」,「狀態」等的討論還含有
  2. 消息$資源
消息的陣列。 10

問題: 當我加載網頁,我做Discussion.query(),用於檢索討論標題等爲了節省客戶端< - >服務器的請求,消息的討論是也返回(除了討論信息)。 好吧,那太棒了,但是如果我想編輯或刪除郵件呢?當我拿到他們使用「討論」模型對象時,消息不被視爲$資源消息和我不能$ update他們或* $刪除它們。

其實,我只是做了一個「Messages.get()」爲得到真正的消息$資源,但它的成本到我的服務器(延遲,SQL查詢,...)一個新的請求。

目前,我發現了兩個解決方法實現這一目標:

  1. 使用消息$資源靜態方法(Message.delete(...)等)
  2. 「原始」 $ http請求

我不滿意這兩個解決方案,因爲我希望代碼儘可能簡單。

-

是否可以告訴角「嘿,這對象實際上是消息$資源!」當我使用其他資源檢索郵件? 對不起,奇怪的解釋。我認爲任何代碼都不會有幫助,但問我需要。

+0

聽起來好像討論服務應該有一個消息服務的dep,它應該在加載討論時在messagesService上設置.messages屬性;不熟悉$資源,所以沒有留下完整的答案 – jcollum

+0

是的,我已經這樣做了。問題是,結果消息不被視爲$資源,所以我不能編輯/刪除它們 – Neozaru

+0

張貼一些代碼...很難遵循你所說的話。 – fabrizioM

回答

1

這聽起來像這裏這個問題的重複:ngResource resolving nested resources

但概括地說:沒有一個真正的偉大的方式做你想要使用$resource什麼。看看這篇文章以及我建議的可能解決方案,但正如你所看到的,我們從來沒有真正想出一個好的解決方案。

您還可以查看Restangular庫,看看它是否符合您的需求。