Sunday, May 19, 2024
 Popular · Latest · Hot · Upcoming
174
rated 0 times [  179] [ 5]  / answers: 1 / hits: 39860  / 11 Years ago, fri, november 8, 2013, 12:00:00

See solution below:



I'm trying to connect to a Parse.com Rest backend and display data from object values.



HTML (I put several angular calls to be sure to catch output):



<div ng-controller=MyController>
<p>{{item}}<p>
<p>{{items}}<p>
<p>{{item.firstName}}<p>
<p>{{data}}<p>

</div>


JAVASCRIPT rest:



function MyController($scope, $http) {

$scope.items = [];
$scope.getItems = function() {

$http({method : 'GET',url : 'https://api.parse.com/1/classes/Professional/id', headers: { 'X-Parse-Application-Id':'XXXX', 'X-Parse-REST-API-Key':'YYYY'}})
.success(function(data, status) {
$scope.items = data;
})
.error(function(data, status) {
alert(Error);
});
};
}


This won't work, it does strictly nothing, not even a message in the console.
I know the rest call got the correct credential, as I'm able to get object content returned when I test it with a rest tester program. Maybe the URL should not be absolute ?
Any clue is very welcome, i've spent DAYS on that.



SOLUTION:



Thanks to the help of people answering this thread, I was able to find the solution to this problem so I just wanted to contribute back:



Get Json object data from Parse.com backend, pass it authentification parameters:



function MyController($scope, $http) {

$scope.items = [];
$scope.getItems = function() {

$http({method : 'GET',url : 'https://api.parse.com/1/classes/Professional', headers: { 'X-Parse-Application-Id':'XXX', 'X-Parse-REST-API-Key':'YYY'}})
.success(function(data, status) {
$scope.items = data;
})
.error(function(data, status) {
alert(Error);
});
};


Notice that ' ' necessary arround header key object values. Those ' ' are not necessary around method and url keys.



Template that list all 'firstName' of each object:



<div ng-controller=MyController ng-init=getItems()>
<ul>
<li ng-repeat=item in items.results> {{item.firstName}} </li>
</ul>
</div>


Notice: item in items.results. results is necessary because the return value is a JSON object that contains a results field with a JSON array that lists the objects. This could save you some headache.
Also notice ng-init: if you don't put that, or any other form of call to the getItem(),then nothing will happen and you will be returned no error.



That was my first try of Angularjs, and i'm already in love ^^.


More From » rest

 Answers
1

Based in your request the controller should be:



HTML



<div ng-controller=MyController>
<button type=button ng-click=getItems()>Get Items</button>
<ul>
<li ng-repeat=item in items> item.firstName </li>
</ul>
</div>


JS



  function MyController($scope, $http) {
$scope.items = []

$scope.getItems = function() {
$http({method : 'GET',url : 'https://api.parse.com/1/classes/Users', headers: { 'X-Parse-Application-Id':'XXXXXXXXXXXXX', 'X-Parse-REST-API-Key':'YYYYYYYYYYYYY'}})
.success(function(data, status) {
$scope.items = data;
})
.error(function(data, status) {
alert(Error);
})
}
}

[#74409] Thursday, November 7, 2013, 11 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
tatumm

Total Points: 47
Total Questions: 92
Total Answers: 89

Location: Palau
Member since Tue, May 30, 2023
1 Year ago
;