Alrighty,實習項目我正在嘗試爲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);
使用下面的Resp onseInterceptor:
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
它確實表明了數組($對象),但我無法達到它使用
console.log(testArticles.$object);
我應該使用.get()而不是getList()嗎?如果是這樣,我該如何正確使用它?
謝謝你的時間,請建議,我仍然是一個初學者。
您是否配置Restangular以將'/ rest'基礎添加到API調用中? 爲什麼從攔截器返回的數據不是您可以使用的東西?你看到了什麼數據而不是預期的數據? –
@EzequielMuns是的,我配置了基礎URL,我將很快編輯我的文章,以便它包含您剛纔調用的東西:) –