将 $http.get 转换为 Restangular
Converting $http.get to Restangular
好吧,对于一个实习项目,我正在尝试为 REST API 创建一个简单的客户端。当前客户端正在使用常规的angularJS,但我需要使用Restangular
。我一直在四处寻找,尝试很多东西,但没有什么能帮助我做我想做的事,或者理解需要发生的事情。
这是需要转换为 Restangular 的代码片段
$http.get('/rest/programarticle/', {
'format': 'json'
}).success(function(data, status, headers, config) {
$scope.articles = angular.articles = data.results;
});
这将选取包含一些元数据的 JSON 数据以及一个数组(结果):
{
"count": 3,
"next": null,
"previous": null,
"results": [
{
"id": 100,
"catalog": 7,
"catalog_alias": "placeHolder",
"program": 7,
"name": "placeHolder"
},
{
"id": 92,
"catalog": 6,
"catalog_alias": "placeHolder",
"program": 6,
"name": "placeHolder"
},
{
"id": 84,
"catalog": 5,
"catalog_alias": "string",
"program": 5,
"name": "placeHolder"
}
]
}
我已正确配置了我的baseUrl,并尝试了以下方法:
var testArticles = Restangular.all('programarticle').getList();
console.log(testArticles);
使用以下响应拦截器:
RestangularProvider.addResponseInterceptor(function(data, operation, what, url, response, deferred) {
var extractedData;
if (operation === "getList") {
extractedData = data.results;
extractedData.count = data.count;
extractedData.next = data.next;
extractedData.previous = data.previous;
} else {
extractedData = data.data;
}
return extractedData;
});
但这仍然会导致我无法在控制台中使用的内容:
Promise {$$state: Object, restangularCollection: true, $object: Array[0]}
打开时显示以下内容:
$$state: Object
$object: Array[7]
call: wrapper()
get: wrapper()
push: wrapper()
restangularCollection: true
__proto__: Promise
它确实显示了一个数组($object),但我无法使用
console.log(testArticles.$object);
我应该使用 .get() 而不是 getList()吗?如果是这样,我如何正确使用它?
感谢您抽出宝贵时间,请建议,我仍然是初学者。
restangular 返回的 get
/getList
函数实际上是 Promises,而不是自己检索的 JSON 对象。承诺是一种使用更易于管理的接口抽象异步调用的方法。它们代表着预期的未来结果。
你需要知道的是,要获得 Promise 的实际结果,你必须使用 then
函数添加一个回调,如下所示:
Restangular.all('programarticle').getList().then(function (articles) {
$scope.articles = articles;
});
在此处阅读有关承诺的更多信息。
相关文章:
- 如何在JavaScript中将字符串转换为函数引用
- 如何在Javascript中将JSon对象转换为数组
- 使用JS将数组转换为json对象
- 如何使用json将对象列表从java转换为javascript
- 偶尔结结巴巴地说“;堆叠的”;translate()上的转换(v4.0.0-alpha40)
- 为什么在单独的函数中应用时转换会闪烁/断断续续(D3)
- 在Javascript中转换对象数组
- 将数字转换为一定数量的硬币
- 将纯文本URL转换为可单击链接
- 当图像转换为本地存储的DataURL时,EXIF被删除
- 如何使用js将SNAPSHOT内部版本号转换为3位数的整数
- 如何将TypeScript对象转换为普通对象
- 检测个位数整数时正在转换毫秒
- 从javascript到jquery的转换
- DOM事件通过JSON转换为java
- 将圆柱体转换为弯管
- 混合 ui-sref 和 $state.go 在 Angular ui-router 中进行状态转换
- JavaScript代码问题:我正在将对象转换为数组
- 将 $http.get 转换为 Restangular
- AngularJS和Restangular试图将update方法转换为API