在Angular.js中访问9gag API
Accessing 9gag API in Angular.js
我正在制作一个简单的angular/rails应用程序作为9gag查看器,只是为了练习。我正在使用非官方的api,它似乎工作。我设置了rails应用,rails只是服务于angular。我可以在javascript文件中调用api,它会输出数据,所以我知道这部分是有效的。
当我进入控制台时,我看到我输入的"成功"消息,所以唯一不能工作的代码是angular。
app.js
window.App = angular.module('chadder', ['ngResource'])
hot_ctrl.js
App.controller('HotCtrl',['$scope', '$http', function($scope,$http){
$scope.data = [];
$http.get('http://infinigag.eu01.aws.af.cm/trending/0').success(function(data){
console.log("success");
return $scope.data = data;
});
}]);
index.html.erb
<div class="container" ng-controller="HotCtrl" id="test">
<div class="row" ng-repeat="hot in hot">
<h2>{{ data.caption }}</h2>
<p>{{ data.link }}</p>
</div>
</div>
我使用的是我用来访问其他rails api的服务,但由于我得到的错误,我认为这只是让你访问你在本地拥有的api(即localhost:3000/api/something.json)。我没有使用它,但我确实设置了这个;
hot.js
App.factory('Chadder', [
'$resource', function($resource) {
return $resource('http://infinigag.eu01.aws.af.cm/trending/0', []);
}
]);
因为我看到了"成功",我可以在网页上看到API数据,我很确定我唯一做错的就是没有给angular正确的终点。任何帮助都会很感激。
没有正确读取源数据对象
返回
{
data: [/* array of objects */],
paging :{} /*object*/
}
另外,你的ng-repeat
没有意义。没有范围阵列hot
要重复。然后在ng-repeat
中,您没有引用您创建的对象hot
。
使用你当前的作用域设置,你需要重复data.data
<div class="row" ng-repeat="hot in data.data">
<h5>{{ hot.caption }}</h5>
<p>{{ hot.link }}</p>
</div>
演示相关文章:
- 如何更改bigquery API中的计费层选项
- Amazon S3 REST API大小不正确
- 客户端服务器REST API captcha实现
- 使用Facebook live API创建实时视频对象时的隐私设置
- 谷歌放置API:按国家或餐馆名称搜索餐馆
- MeteorJS:在带有回调的vzaar api上正确使用wrapAsync
- 是否可以控制获取哪些Google地图脚本(JavaScript API)
- API密钥使用和检查示例
- 谷歌地图API v3不适用于移动浏览器或PhoneGap
- 任何方式使AJAX调用Gmail API,而无需通过JS库
- 谷歌地图JS API+JSON-多个标记没有显示
- 单击超链接时,如何使用Google Maps API v3缩放地图
- 如何在 API 调用后和 if 语句中启用提交按钮
- 与运行长作业(javascript,node.js)的第三方API同步的最佳实践
- 搜索api在mac上显示对话框
- Backbone.js restful json API design
- 标记的实时更新,无需加载页面谷歌地图API V3
- 是否可以使用iframe API在iOS浏览器上播放youtube视频
- 对API数据使用声明性绑定
- 在Angular.js中访问9gag API