Javascript 在角度服务或控制器中使用成功和错误

Javascript 在角度服务或控制器中使用成功和错误,javascript,angularjs,separation-of-concerns,Javascript,Angularjs,Separation Of Concerns,我创建了一个角度服务,其中包含以下代码: authenticationAPI.login = function() { return $http({ method: 'GET', timeout: 10000, url:'http://serverName/apiName/Login', params : {userName : 'User',

我创建了一个角度服务,其中包含以下代码:

authenticationAPI.login = function() {
            return $http({
                method: 'GET',
                timeout: 10000,
                url:'http://serverName/apiName/Login',
                params : {userName : 'User',
                          password : '12345'}
            });
因此,目前我的“authenticationController”正在使用此服务的“登录”方法,并自行处理.success和.error

我选择在控制器内处理它的原因之一是决定在遇到错误时如何处理控制器中的html(显示警报、更改某些元素)

但是,我对angular不太熟悉,不确定这是否是处理请求的最佳实践


你能帮我弄清楚我应该在服务或控制器中处理这个逻辑吗?

我认为这完全取决于处理延迟服务器的逻辑需要什么。我已经做了这两件事——让服务处理延迟的事务,让控制器处理延迟的事务。我认为一个决定因素应该是:

延迟逻辑是否会更新视图/用户界面?然后在控制器中处理它

延迟逻辑是否会更新其他提供者或控制器使用的数据?然后在服务中处理它


在您的情况下,它听起来像是需要处理的视图逻辑,因此我认为控制器很好。

就我个人而言,我已经做了与您相同的事情-返回承诺并在有意义的地方处理结果,以便向用户显示结果。我不认为这有什么问题。问题是..我试着去读它,却找不到一篇描述这方面最佳实践的文章。我很高兴知道我选择的方式是否正确。所以一般来说,你说它不是黑白的。您说,在同一个角度应用程序中,有时在控制器中处理承诺是可以的,而在其他情况下在服务中处理承诺是可以的。在同一个应用程序中,它不必总是在控制器上或总是在服务上?在我看来,是的。没有什么是真正的黑色或白色。我在很多应用程序中都使用了这两种方法。