我有一个 AngularJS 应用程序service
s 调用$http
资源并返回promise
我在控制器中解决了这个问题。这是我正在做的事情的示例:
app.service('Blog', function($http, $q) {
var deferred = $q.defer();
$http.get('http://blog.com/sampleblog')
.then(function(res) {
// data massaging stuffs
return deferred.resolve(res.data);
}, function(err) {
// may be some error message checking and beautifying error message
return deferred.reject(err);
});
// chain if further more HTTP calls
return deferred.promise;
});
但我也可以简单地执行以下操作:
app.service('Blog', function($http) {
return $http.get('http://blog.com/sampleblog');
});
然后在该处进行验证、错误美化、链接承诺等controller
level.
我的问题是:就代码弹性和灵活性而言,哪一个被认为是“最佳实践”(如果有)?或者有没有比这完全不同的更好的方法?
根据 MVC 背后的概念,控制器应该决定如何处理 Promise。
服务应该发起承诺。
app.service('Blog', function($http) {
return $http.get('http://blog.com/sampleblog');
});
控制器应该决定解决后做什么。
$scope.response = Blog;
$scope.response.then(function(response) {
DataProcessor.processData(response.data)
})
.error(function(error){
ErrorHandler.handle(error);
})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)