gpt4 book ai didi

javascript - 在 AngularJS 中创建新服务有什么优势?

转载 作者:行者123 更新时间:2023-12-02 15:22:26 26 4
gpt4 key购买 nike

当使用 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 的新 Controller ,该 Controller 想要访问与 MainController 相同类型的天气数据,会发生什么情况。如果没有预测服务,您就必须剪切、粘贴并重复 $http.get。

我猜如果仅限于两个实例,那就没问题了。但如果 Forecast-api URL 发生变化,会发生什么情况呢?现在您必须在 2 个位置更改它。

如果您想要 10 天的预测怎么办?

服务或任何模块化代码的要点是帮助将离散的代码块分离成可以在需要的地方重用的模块。然后您只需担心修复或更改服务的一个地方。

有时很难看出,当您只在一个地方需要它时,但在编写代码时,您必须提前考虑几次迭代,以尝试预见一些其他合理的用例,以使以后的生活更轻松。

关于javascript - 在 AngularJS 中创建新服务有什么优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33927864/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com