在我的控制器中,我使用工廠的方法來更新一些數據。例如,我試圖獲取更新的用戶數組。我應該從工廠退回承諾嗎?或者我應該從承諾中返回數據(不確定我是否正確表述了這一點)?AngularJS - 您是否從服務/工廠返回承諾或數據?
我問,因爲我看到這兩種方式,有人說控制器不應該處理請求是否成功或失敗。在這種情況下,我特別談論$ http返回的諾言。
或者換句話說,我應該在工廠內使用then()方法,還是應該在工廠返回後在控制器中使用它?
我試着從服務中處理成功和錯誤回調(使用this()方法),但是當我將數據返回給控制器時,用戶數組未正確更新。我假設這是因爲請求是異步的。因此,在控制器,它會是這個樣子:
vm.users = userFactory.getUsers();
如果我從控制器內處理的承諾,當時()方法中設置的用戶陣列,它工作正常。但是這可以回到我應該用到的地方():
userFactory.getUsers().then(
function(data){
vm.users = data;
}, ...
希望有人能夠對此有所瞭解或提供一些意見。謝謝!
甚至更好的方法 - 您可以通過在響應中使用攔截器並將所有邏輯保存在一個地方來處理錯誤;) – Kamo