在使用AngularJS时,为什么提供新服务而不是仅仅坚持$ http会有好处?
我为什么要做这样的事情:
app.factory('forecast', ['$http', function($http) {
return $http.get('https://s3.amazonaws.com/codecademy-content/courses/ltp4/forecast-api/forecast.json')
.success(function(data) {
return data;
})
.error(function(err) {
return err;
});
}]);
app.controller('MainController', ['$scope', 'forecast', function($scope, forecast) {
forecast.success(function(data) {
$scope.fiveDay = data;
});
}]);
当我可以坚持下去的时候:
app.controller('MainController', ['$scope', '$http', function($scope, $http) {
$http.get('https://s3.amazonaws.com/codecademy-content/courses/ltp4/forecast-api/forecast.json')
.success(function(data) {
$scope.fiveDay = data;
})
.error(function(err) {
return err;
});
}]);
也许在这种情况下并不重要,但是由于您可以在AngularJS中创建新服务,因此我认为在某些情况下它是有益的。提前致谢!
如果现在需要一个名为WeatherController的新控制器,该控制器想要访问与MainController相同类型的天气数据,将会发生什么情况。如果没有预测服务,则必须剪切并粘贴并重复$ http.get。
如果只限于两个实例,那很好。但是,如果Forecast-api URL发生变化会怎样?现在,您必须在2个位置进行更改。
如果您想要10天的预报怎么办?
服务或任何模块化代码的重点是帮助将离散的代码块分离为模块,这些模块可以在需要的任何地方重复使用。然后,您只需要担心一个地方可以修复或更改服务。
有时很难看到仅在一个地方需要它,但是在编写代码时,您必须考虑一些迭代,以尝试预见其他合理的用例,以使生活更轻松。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句