为什么angular $resource会对同一个URL查询和获取不同的响应?
Why does angular $resource query and get expect different responses from the same URL?
我问这个问题,因为它让我觉得我不能做一些'角化'的方式,因为我的代码是不必要的复杂。
我定义了一个资源
Question = $resource("/questions/:id", {id: "@id"});
现在如果我输入
Question.get(1);
它将转到/questions/1,并期望一个对象作为响应如果我做
Question.query({id: 1});
它将转到/questions/1,但期望一个数组作为响应
我知道为什么它会这样做,因为isArray的默认设置。
我有客户端代码,我不知道有多少id将查询。我可以通过让我的angular代码执行
来轻松解决这个问题if (ids.length == 1)
Question.get(ids);
else
Question.query({id: ids})
和让我的服务器发送一个对象时,数组长度为1,但这似乎过于复杂,让我认为我必须去这个错误的方式。
有更干净的解决方案吗?
不确定这是否是有角度的方式,但我想到的解决方案是在我的查询上使用不同的参数,以便它在rails上击中index方法,而不是显示,因此可以安全地始终返回一个数组。
一样:
Question = $resource("/questions/:id", {id: "@id"});
q = Question.get(1);
// Performs GET /questions/1
// q = { id: 1, ...};
q = Question.query({ids: 1});
// Performs GET /questions?ids=1
// q = [{id: 1, ... }];
q = Question.query({ids: [1,2]});
// Performs GET /questions?ids=1&ids=2
// q = [{id: 1, ... }, {id: 2, ...}];
相关文章:
- Typescript angularjs$http获取响应类型(避免使用<any>)
- 在JavaScriptAjax调用中从web服务中的XMLDocument获取响应.
- 从http获取响应管理zip
- 如何从php页面获取响应
- 在主干提取完成后获取响应标头
- 在Java(Coffee)脚本中获取响应值
- Jquery ajax post禁用启用字段并获取响应
- 可以'无法使用Oauth2/BaseCamp API获取响应数据
- 正在从servlet获取响应.ExtJs
- 从代码点火器控制器发送电子邮件后,无法在 jquery 中获取响应
- 如何从 jQuery Get 获取响应标头位置
- 使用 Requests 库从 PhanomJS 服务器获取响应
- 有关在 $.get() 中获取响应的问题
- 如何使用XMLHttpRequest获取响应表单servlet
- 更改 URL 并使用 AJAX 获取响应加载新页面的最佳方法是什么
- 煎茶触摸获取响应标头
- 如何获取响应文本
- NodeJS&Socket.IO:发出请求事件并获取响应,我应该在何时/何地绑定侦听器
- 如何从 javascript 调用 url 并从 url 到 javascript 获取响应
- Jquery $.ajax 获取响应与将“this”对象嵌套传递到“success”回调函数冲突