Javascript 如何编写angularJs控制器从Parse.com获取Rest数据
参见下面的解决方案: 我正在尝试连接到Parse.com Rest后端并显示来自对象值的数据 HTML(我放置了几个角度调用以确保捕获输出): 这不起作用,严格来说,它什么都不做,甚至在控制台中也没有消息。 我知道rest调用获得了正确的凭据,因为当我使用rest tester程序测试它时,我能够获得返回的对象内容。也许URL不应该是绝对的? 任何线索都很受欢迎,我已经花了好几天的时间在这上面了 解决方案: 多亏了回答这个问题的人的帮助,我找到了这个问题的解决方案,所以我只想回馈: 从Parse.com后端获取Json对象数据,并向其传递身份验证参数:Javascript 如何编写angularJs控制器从Parse.com获取Rest数据,javascript,rest,angularjs,Javascript,Rest,Angularjs,参见下面的解决方案: 我正在尝试连接到Parse.com Rest后端并显示来自对象值的数据 HTML(我放置了几个角度调用以确保捕获输出): 这不起作用,严格来说,它什么都不做,甚至在控制台中也没有消息。 我知道rest调用获得了正确的凭据,因为当我使用rest tester程序测试它时,我能够获得返回的对象内容。也许URL不应该是绝对的? 任何线索都很受欢迎,我已经花了好几天的时间在这上面了 解决方案: 多亏了回答这个问题的人的帮助,我找到了这个问题的解决方案,所以我只想回馈: 从Parse
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");
});
};
请注意,在标头键对象值周围必须有“”。在方法键和url键周围不需要这些“”
列出每个对象的所有“名字”的模板:
<div ng-controller="MyController" ng-init="getItems()">
<ul>
<li ng-repeat="item in items.results"> {{item.firstName}} </li>
</ul>
</div>
- {{item.firstName}
注意:“items.results中的项”。“results”是必需的,因为返回值是一个JSON对象,其中包含一个results字段,其中包含一个列出对象的JSON数组。这可以帮你省去一些头痛。
还请注意“ng init”:如果不将其放入,或任何其他形式的对getItem()的调用,则不会发生任何事情,并且不会返回任何错误
这是我第一次尝试Angularjs,我已经爱上了^^。根据您的要求,控制器应该: 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>
只需对Angular的较新版本进行一点更新(使用
。然后从1.5版开始使用):
你试过什么吗?至少给我们看看你控制器中的一些代码。提示:您必须在控制器中插入“$http”服务。您应该能够从控制器中使用Parse Javascript SDK并使用数据更新$scope.items,您可能希望查看此链接,感谢链接,但我希望避免使用任何第三方SDK,然后你可以使用angularjs$http并重新发明轮子:)$http({method:'GET',url:'https://api.parse.com/1/classes/Professionals,标题:{X-Parse-Application-Id:'xxx',X-Parse-REST-API-Key:'yyy'}})
谢谢,我不应该将函数命名为MyController而不是ParseCtrl吗?这是我在html中选择的控件的名称。@Benj是的,你可以命名函数MyController
,我已经在答案中这样做了。谢谢,我编辑了上面的消息,因为它仍然无法工作。请注意,我必须将“”放在标题键和名称之间。这很奇怪,但在我使用的编辑器中会被标记为错误代码。@Benj,服务器的响应是什么?您是否使用firebug或Chrome开发者工具进行了检查?当您单击时,而不是之前,会执行$http请求。$http服务的响应是一个承诺,因此不能直接将其分配给变量。为了更好地连接angular和RESTful API,我总是使用ngResource。请告诉我如何修改答案来回答你的问题。
<div ng-controller="MyController" ng-init="getItems()">
<ul>
<li ng-repeat="item in items.results"> {{item.firstName}} </li>
</ul>
</div>
<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>
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");
})
}
}
myApp.controller('MyController', function($scope, $http) {
$scope.items = []
$http({
method: 'GET',
url: 'https://api.parse.com/1/classes/Users',
headers: {'X-Parse-Application-Id':'XXXXXXXXXXXXX', 'X-Parse-REST-API-Key':'YYYYYYYYYYYYY'}
})
.then(function successCallback(response) {
alert("Succesfully connected to the API");
$scope.items = data;
}, function errorCallback(response) {
alert("Error connecting to API");
});
});