【发布时间】:2014-05-05 21:42:54
【问题描述】:
我有一个提供“活动”数据的网络服务控制器
GET /api/activity/list
GET /api/activity/1
GET /api/activity/activity-slug-name
PUT /api/activity
DELETE /api/activity/1
它还提供一些“元”数据
GET /api/activity/meta/dates
GET /api/activity/meta/states
它们都使用 ngResource 工作得非常好,因为它们都返回 JSON 对象。 但是 /api/activity/meta/dates 没有
它返回一个字符串数组
[
"2013-06-02T17:05:16Z",
"2013-06-07T17:05:16Z",
"2013-08-17T17:05:16Z"
]
ngResource 把它变成一个 char 数组 见:Invalid result from ngResource request with string array
显然我可以将元函数拆分为某种形式的 ActivityMetaService,但我更愿意将它们放在一起
我的问题是
有没有办法阻止 ngResource 执行这种过度的对象分解?
或者我应该用 Angular 提出一个错误?
提前致谢
* 更新 *
感谢马克的评论。如果您将其作为答案,我会接受它,因为它指向 Angular 中的一个错误,而其他两个答案不适合当前架构。
虽然您在技术上是正确的,但自 80 年代中期以来,没有人将字符串视为字符数组,C/C++ 程序员除外 :)
我在 github 上提出了一个带有 angular.js 项目的票,参考下面
【问题讨论】:
-
这是因为在
$resource()内部使用了angular.copy()。当copy()函数找到一个字符串数组时,它会将字符串视为一个字符数组(实际上就是这样)。我知道没有办法禁用此行为,现在唯一真正的方法是直接使用$http服务。
标签: angularjs