2016-01-21 60 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”是从服务返回的对象),并忽略其余的甚至不必要的值。 –

相关问题