在AngularJS中创建新服务的优势是什么
What is the advantage of creating new services in AngularJS?
当使用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.
我想,如果只限于两个实例,那也没关系。但是,如果预测api URL发生变化,会发生什么?现在您必须在两个位置更改它。
如果你想要一个10天的预报怎么办?
服务或任何模块化代码的目的是帮助将离散的代码块分离成模块,这些模块可以在需要的地方重用。然后你只需要担心一个地方来修复或更改服务。
当你只需要在一个地方使用它时,有时很难看到这一点,但在编写代码时,你必须提前思考几次迭代,以尝试预见其他一些合理的用例,从而使未来的生活更轻松。
除了人们将在这里填写的所有答案之外。
其主要思想是不要重复代码,并将代码划分为模块。假设您有另一个使用相同$http资源的控制器。因此,您必须将代码复制并粘贴到新的控制器,而不是优雅地调用服务并使用他的方法。
如何处理代码
你正在处理一个大项目,你有很多来自数千个控制器的$http请求的引用,但你将你的网站移动到了一个新的域,或者你的服务器开发人员更改了API以使用其他方法。好吧,你必须查找所有使用该URL的骗子。但如果你想使用一项服务,你只能在一个地方更改它。
还有更多的好处,但不是以你为榜样。
- 这是什么 ==- javascript 运算符
- 我的单元测试选项是什么
- 打破承诺链的好方法是什么
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- Javascript中的空白是什么
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- 在JavaScript中拆分日期字符串的更好方法是什么
- Angular:将对象存储在服务中以在视图中显示和将crud函数存储到服务器的最佳方式是什么
- 在 AngularJS 中与后端服务通信的最佳方法是什么?
- JavaScript 中事件处理和计时器服务的优先级是什么?
- 在AngularJS中创建新服务的优势是什么
- 脚本的目的是什么?标签服务在
- 在Angular中,在闭包中引用服务属性/方法最合适的方式是什么?
- 在Angularjs中注入服务的正确方式是什么?
- 在Breeze中EntityManager的服务名称是什么?
- 在服务场景中,在页面加载时设置$scope值的正确方法是什么?
- 将html/javascript部署到服务组合中最简单直接的方法是什么?
- 在AngularJs中返回服务的最好方式是什么?及其原因
- 对于拥有Cocoa和JS客户端的web服务来说,最简单的数据交换格式是什么?
- 同步服务缓存的最佳实践是什么 Angular 1.3.