2016-01-21 70 views
1

我正在使用Angular並定義了一個Service和一個Controller。應將哪些數據從服務返回給控制器?

當出現錯誤時,我需要向用戶顯示一條消息。 我是否應該處理控制器或控制器和服務上的錯誤?

服務應該返回$ http並處理控制器上的所有內容嗎?

function postService($http, $log, settings) { 
    return { 
    get: function() {  
     return $http.get("/api/recent-posts"); 
    } 
    } 
} 

還是應該服務僅返回件控制器:

function postService($http, $log, settings, $q) { 
    return { 
    get: function() {  
     return $http.get("/api/recent-posts") 
    .then(function (response) { 
     return response.data; 
    }, function (response) { 
     $log.error("Service Error"); 
     return ($q.reject("Service Error")); 
    }); 
    } 
} 

在第二個選擇,我也不回滿$ HTTP信息提供給控制器。

+0

你應該從服務返回承諾,然後切換到控制器作進一步處理,在那裏你可以處理所有的業務登錄包括有效/無效 –

回答

0

通常

服務是API調用和 控制器是用於寫入/使用所需的邏輯上顯示UI修改數據(來自API)的。

+0

是的,我知道...但是,服務應該返回給控制器? $ http返回的所有內容?我在網上看到不同的方法,所以這就是爲什麼我問... –

+0

沒有必要返回所有服務退貨。你可以返回result.data(如果「result」是從服務返回的對象),並忽略其餘的甚至不必要的值。 –

相關問題