2013-07-03 93 views
1

我正在爲現有的Web應用程序在Angular中構建一個服務層。將$ http請求和數據按摩轉移到Angular定製服務中。我理解服務的依賴注入部分,但我正在努力解決成功/錯誤,並將其傳遞給控制器​​。角度控制器和服務 - 成功和錯誤回調

我看到一些人用$ q使用承諾。如果您在每個服務調用中執行單個REST API調用,是否有更容易的承諾的「then()」語法?注意:後端是非標準的REST,所以$資源策略對我來說不起作用。我無法告訴我們最新推薦的處理服務承諾/回調的方式。如果您關心的是成功條件,回調似乎很簡單。有最近的示例應用程序能很好地展示這方面的服務嗎?或文章?

+0

'success()'和'error()'不返回promise,只有'then()'做。這裏有兩個服務的例子,一個使用'success()',另一個'then()':http://stackoverflow.com/questions/17416599/should-services-expose-their-asynchronicity關於這個問題的共識是:使用'then()'。 –

回答

1

我最近寫了一些緩存服務,我不能決定使用延遲還是回調。我最終使用了延期路線,我喜歡它。寫了同樣的東西兩次,我可以肯定地說,對於使用你的服務的人來說,改變只是輕微的。

在回調中,他們通過回調來繼續。

在延期中,他們將菊花鏈連接起來,然後傳遞匿名函數進行延續。非常相似。

由於Angular有能力特別考慮延期,我會推薦使用延期。

如果您將範圍變量設置爲延遲,那麼Angular足夠聰明,可以等待deferred.promise解決。一旦解決,Angular將綁定到變量。這非常棒。我會建議擁抱。