2017-03-16 60 views
0

我在Angular js中使用$resource。我想用$resourceProvider配置$resource,以便我可以處理服務器響應。

對於實例

我做的用戶配置文件get請求,如果我從服務器獲取500的錯誤,我應該給一個alert("Something went wrong at server");,如果我得到403我應該給我alert("You don't have permission to access this resource");如何才能做到這一點?

我已經做了一些其他的配置是這樣的:

$resourceProvider.defaults.actions.update = { 
    method: 'PUT' 
}; 

這工作得很好我想要實現這個目標的方法相同。

謝謝。

+0

警報消息的'$ resource'不應彈出警報,這是一個混合的責任,使它很難重用。一個*控制器*應該負責彈出可見警報等,而不是後端服務。 – deceze

+0

@_deceze_謝謝,我非常同意你的看法。但我想要一個機制,通過它我可以通知我的服務顯示'alert()' –

+0

查看[角度http文檔](https://docs.angularjs.org/api/ng/service/$http ) –

回答

0

您應該創建一個responseError攔截器來處理任何類型的錯誤。

這裏是蹲下來演示攔截器的使用。

https://plnkr.co/edit/4E2YAiwCOgA1Nw5d7CC2?p=preview

這不會給任何錯誤。

轉到resource.js文件並更改該行

restPath = 'https://www.googleapis.com/books/v1/volumes'

restPath = 'https://www.googleapis.com/books/v1/volumes1212'

現在,您將看到404