AngularJS中的$resource web服务连接配置的确切含义
How exactly means this $resource web service connection configuration in AngularJS?
我是AngularJS的新手,我正在学习一个教程,展示如何访问此外部天气预报API:http://openweathermap.org/forecast以检索和使用天气信息。
因此,在我的应用程序中,我有一个这样的控制器:
weatherApp.controller('forecastController', ['$scope', '$resource', '$routeParams', 'cityService', function($scope, $resource, $routeParams, cityService) {
// It contain the city selected in the view:
$scope.city = cityService.city;
$scope.days = $routeParams.days || 2;
$scope.weatherAPI = $resource("http://api.openweathermap.org/data/2.5/forecast/daily",
{ APPID: 'MY_PERSONAL_KEY',
callback: "JSON_CALLBACK",
cnt: 5
},
{ get: { method: "JSONP" }});
$scope.weatherResult = $scope.weatherAPI.get({ q: $scope.city, cnt: $scope.days });
$scope.convertToFahrenheit = function(degK) {
return Math.round((1.8 * (degK - 273)) + 32);
}
$scope.convertToDate = function(dt) {
return new Date(dt * 1000);
};
}]);
我发现了一些困难,无法理解服务的确切名称和所需信息。
因此,根据我的理解(但我绝对不确定,所以如果我做了错误的断言,请纠正我),我有以下情况:
1) 我在控制器中注入了Angular提供的$resource服务,据我所知,这是一个可以用于用户友好的RESTful web服务交互的对象。
所以这句话:
$scope.city = cityService.city;
我将一个城市(由用户在视图中插入)放入该控制器的$scope的城市属性中,它将作为用于Web服务查询的参数之一。
然后,我在$scope对象上创建weatherAPI属性,我认为它应该代表访问该资源的方式
$scope.weatherAPI = $resource("http://api.openweathermap.org/data/2.5/forecast/daily",
{ APPID: 'MY_PERSONAL_KEY',
callback: "JSON_CALLBACK"
},
{ get: { method: "JSONP" }});
因此,我认为weatherAPI是$resource服务产生的资源对象(或者我遗漏了什么?)。
在此设置web服务URL(http://api.openweathermap.org/data/2.5/forecast/daily)和几个JSON对象,它们是:
{
APPID: 'MY_PERSONAL_KEY',
callback: "JSON_CALLBACK"
},
其中我声明APPID字段,它是我使用密钥的个人密钥,以及回调:"JSON_callback"域。这个回调字段的具体代表是什么?
第二个对象:
{get:{method:"JSONP"}}
好吧,对我来说,这两个物体的中心相当模糊。
具体定义是什么?在我看来,这似乎与我的应用程序的安全性有关,但我绝对不确定
最后,它通过以下方式从web服务检索数据:
$scope.weatherResult = $scope.weatherAPI.get({ q: $scope.city, cnt: $scope.days });
其中我假设我只是传递2个参数(类似于?q=value&?cnt=经典HTTPrequest的值)
所以我认为weatherAPI是由$resource服务产生的资源对象(或者我遗漏了什么?)。
不,你没有错过任何东西。weatherAPI
正是你所认为的。
其中我声明了作为我的个人密钥的APPID字段以使用该密钥和回调:"JSON_callback"字段。这个回调字段的具体代表是什么?
callback
字段只是针对每个请求传递给API的默认GET参数。它是在这里设置的,所以您不必每次从API请求内容时都传递它。
具体定义是什么?在我看来,这似乎与我的应用程序的安全性有关,但我绝对不确定
传递到$resource
调用的第三个参数是API上可用方法的定义。
在外部对象中,键是方法的名称。它只是该方法可用的名称。value是该方法的设置对象,在这种情况下,它只是指定方法的类型,即"JSONP"。
JSONP是一种特殊类型的请求,它只能是一个"GET"请求,浏览器不允许在这里使用"POST"。JSONP必须返回简单的函数调用,并向其中传递一个参数,即带有结果数据的JSON。此函数将在您的JavaScript上调用。
JSONP只是进行跨站点调用的一种变通方法。
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 如何使用密码检测网络中的状态连接
- 如何处理node.js节点mongodb中的连接和查询队列
- Rails-JQueryUIAutcomplete和AJAX不工作,可以't连接到数据库
- RequireJS向模块传递配置总是返回undefined
- Twilio-显示所有连接参与者的远程参与者视频
- 操作放置在画布上的元素之间的连接
- TypeError:_this.store.getState在使用来自Redux的连接时不是函数
- jQuery UI可排序-多连接列表拖动
- 如何使用offer/answer交换来自两个对等连接的流
- 如何配置分析以将数据发送到我自己的服务器
- 在Qualtrics中,介绍如何动态连接两个滑块
- 扩展jQuery插件以更改配置
- 使用优化器在慢速连接上加载main.js时需要js超时
- 如果连接类型为none,则Javascript Function Only警报
- 为 WebSocket 连接配置身份验证标头
- 查看使用外部化连接配置文件的 birt 报告
- 配置angular和grunt代理连接时遇到问题
- AngularJS中的$resource web服务连接配置的确切含义
- 配置Grunt连接服务器的别名目录