Angular $resource 在 $save 上发布 $promise 和 $resolved 到服务器

Posted

技术标签:

【中文标题】Angular $resource 在 $save 上发布 $promise 和 $resolved 到服务器【英文标题】:Angular $resource POSTS $promise and $resolved to server on $save 【发布时间】:2015-02-23 14:48:13 【问题描述】:

我在我的一个 Angular 项目中遇到了$resource 的问题。突然之间,它开始弄乱在$save 上发送到服务器的对象。

$resource 对象的$save 调用不会从发布到我的服务器的JSON 数据中去除$resolved$promise

除此之外,资源的行为正常。

所以如果我在一篇文章中调用$save -> 这就是实际发送到服务器的内容:


    "id":999,
    "title":"test 2",
    "text":"",
    "file":null,
    "url":null,
    "pdato":"0000-00-00 00:00:00",
    "author_id":0,
    "status":0,
    "lang":"",
    "parent":0,
    "$promise":,
    "$resolved":true

最后两个属性是问题所在。我在其他项目上从来没有遇到过这个问题。是不是angular在发送到服务器之前通过angular.toJson过滤了资源对象,这个操作应该是去掉$promise/$resolved属性?

当我执行console.log(angular.toJson(article));(文章是获取的资源对象)时,它还会记录$promise$resolved 属性。

什么会导致这种行为?

【问题讨论】:

【参考方案1】:

原来我有一个不同版本的角度资源而不是角度。 将 bower.json 中的依赖项版本更改为:

"angular": "~1.3.0",
"angular-resource": "~1.3.0" // this was ~1.2.0

【讨论】:

以上是关于Angular $resource 在 $save 上发布 $promise 和 $resolved 到服务器的主要内容,如果未能解决你的问题,请参考以下文章

ngResource 在 $save() 之后从 POST 响应中检索唯一 ID

Vue.js:vue-resource 使用路径参数调用 resource.save()

angular-resource.js encodeUriSegment 问题

Angular $resource 服务以表单数据而不是请求有效负载发送数据

使用 Angular $resource 上传文件

Angular $resource 和自托管 WebAPI 的 CORS 问题