我必须为输出JSON的API构建一个angularjs客户端,如下所示:
{
"count": 10,
"next": null,
"previous": "http://site.tld/api/items/?start=4"
"results": [
{
"url": "http://site.tld/api/items/1.json",
"title": "test",
"description": "",
"user": "http://site.tld/api/users/4.json",
"creation_datetime": "2013-05-08T14:31:43.428"
},
{
"url": "http://site.tld/api/items/2.json",
"title": "test2",
"description": "",
"user": "http://site.tld/api/users/1.json",
"creation_datetime": "2013-05-08T14:31:43.428"
},
{
"url": "http://site.tld/api/items/3.json",
"title": "test3",
"description": "",
"user": "http://site.tld/api/users/2.json",
"creation_datetime": "2013-05-08T14:31:43.428"
}
]
}
我该如何$resource
映射到此?如果使用isArray=false
,我会将整个Blob作为一个对象使用,可用于读取,但无法对其进行调用.put()
。如果我使用isArray
,那将是行不通的。
有什么干净的方法可以做到这一点吗?还是应该回到使用状态$http
?
您有两种选择。如果可以更改服务器输出,则可以将元信息(计数,下一个,上一个)添加为标头值,而不是将它们添加到响应正文中。
您的第二个选择是使用transformResponse转换响应。在angular
v1.1.2和更高版本(不稳定分支)中,这可以作为$ response配置使用:
var Data = $resource('./data.json',{},{
list:{isArray:true,method:'get',
transformResponse: function (data, headers) {
return JSON.parse(data).results;
}}
});
如果您不想使用不稳定分支,也可以更改$ resource使用的$ http:
$http.defaults.transformResponse.push(function(data){
if(data && data.results){
return data.results;
}
});
我用两个示例创建了一个插件:http
://plnkr.co/edit/PmYotP0eo5k41Z6ZCxl4?p=preview
我不确定将元数据传递到应用程序其余部分的最佳方法(如果需要)。您可以将其附加到第一个结果中,或将其添加为单独的对象-可能不太优雅,但可以完成工作。
问题内容: 我正在尝试将json对象导入变量。我根据教程使用服务。 我收到意外的令牌错误,因为我不应该使用 -但我真的不知道该使用什么。我用谷歌搜索了3个小时,发现只有$ http。或$ json。答案,但是我觉得可以做得更容易-更清晰。 (完美的解决方案是; D 服务文件: 控制器文件: json文件(几乎; D) 编辑: 我将$ resource(’file.json更改为https://ww
问题内容: 我准备使用Java创建文件浏览器。目的是尽可能地模仿默认资源管理器的行为,无论底层操作系统是什么。 我没有用Java完成GUI编程。 我查找了Swing,SWT和JFace,并从本教程开始我的项目:http : //www.ibm.com/developerworks/opensource/library/os- ecgui1/ 我想知道您对解决此问题的最佳方法的看法。如果您可以评论编
问题内容: 当我学到角度时,有两个问题困扰着我: 当用户刷新页面或点击后退按钮时,如何恢复状态? 如何在属于不同控制器的合并范围之间共享数据? 下面我展示了一个使用客户端会话存储的简单解决方案。在用户刷新页面或点击后退按钮后,它既允许共享公共数据,又可以自动恢复状态。 注意:事实证明,以下解决方案对于回答以下问题至关重要: 如何获得“后退”按钮以与AngularJSui路由器状态机一起使用? 问题
问题内容: 我在Android应用程序上使用Retrofit + RxJava,并问自己如何处理API分页以链接调用,直到检索到所有数据。是这样的: 所述ApiResponse对象具有简单的结构: API将返回下一个值,直到最后一页。 有一些好的方法可以做到这一点吗?试图结合一些flatMaps(),但没有成功。 问题答案: 您可以递归建模: 然后,要消耗它, 那应该使您有一个流ResponseO
默认情况下,vue-loader使用css-loader 和Vue模板编译器自动处理你的样式和模板文件。 在这个编译过程中,所有的资源URL,例如 img src="...", background:url(...)和CSS@import被解析为模块依赖。 例如,url(./ image.png)将被翻译为require('./ image.png')和 <img src="../image.pn
所以我正在使用和最新的。 我怀疑DynamoDB如何处理分页?它是否查询DDB并返回第一页的结果,然后再次点击DDB以获取第二次获取的记录?它对数据库的影响是页数的两倍吗?我在AWS文档中找不到任何与此相关的信息。