问题标签 [angularjs-resource]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
6822 浏览

angularjs - ngResource 解析嵌套资源

有哪些选项可以解决 ngResource 响应中的嵌套资源?

关于解析 ngResource 中嵌套资源的端点存在一些相关问题,但这个问题是关于何时 REST 响应包含嵌套在正在查询的集合中的第二个资源,尤其是您不会拥有的一对一映射例如pets/<id>/owner作为自己的资源。

假设有两个资源,Pets并且Owners

获取/宠物:

作为开发人员,Owner有时我想查询整个资源,有时我想查询Pet资源,然后我自动想将owner属性解析为资源实例。

这是我目前的解决方案:

这里的问题很多。有诚信——一方面。我相信,这种实现允许同一资源的多个实例。然后是实用性。您还可以使用其他属性来跟踪(ownergetOwner(),而不仅仅是owner;setOwner如果您希望能够保存模型,则可能)。

可以在transformResponse.

0 投票
2 回答
12445 浏览

angularjs - 如何不以角度发送带有请求正文的 url 模板参数?

假设我有这样的资源设置:

有什么方法可以阻止typeid作为请求正文的一部分提交,而只是发送namePUT 有效负载?我不控制我提交的 API,而且它似乎不喜欢我发送的额外参数。

谢谢!

更新- 2013 年 10 月 25 日 - 13:38

资源文档是这样说的:

如果参数值以 @ 为前缀,则从数据对象中提取该参数的值(对于非 GET 操作很有用)。

这意味着这应该从数据中删除参数:

但它似乎不起作用。还是不知所措。

0 投票
2 回答
1437 浏览

angularjs - AngularJS $resource url 导致“问号”?不带参数出现

我有一个 $resource 为 :all 方法定义了一个自定义 url。

当我的页面加载时,请求会发送到“/api/objects/all.json?”。它加载正确,但存在 ? 让我很困惑。我没有给它传递任何参数,那么为什么 angular 会添加 ? 对请求?

我能以某种方式摆脱它吗?

0 投票
1 回答
875 浏览

javascript - 为什么我的角度资源会忽略特定于操作的 url?

我有以下角度代码:

标记如下所示:

当我单击按钮时,它会尝试向服务器发送 POST,但会发送到原始 URL 而不是特定于操作的 URL。请求中的 URL 如下所示:

知道为什么它试图发布到 just/post吗?另外,知道为什么id=undefined吗?在其他示例中,如果未指定 ID,则似乎?id=blah只是不包含在请求中。先感谢您。

0 投票
3 回答
3419 浏览

javascript - Angular Resource - 如何检查资源实例是否有任何未保存的更改?

我希望能够判断 $resource 实例是否已被用户修改 - 也就是说,它的当前状态是否与最初从服务器加载的状态不同 && 尚未 $saved。我怎样才能做到这一点?

0 投票
1 回答
997 浏览

angularjs - 为什么当我有 responseError 拦截器时没有调用我的 $resource 错误处理程序?

我正在构建我的第一个 Angular 应用程序,但遇到了问题。我有一个 AngularJS 资源,我用成功和错误回调调用它的 .get,如下所示:

我已经用来自服务器的各种错误状态对此进行了测试,它工作正常。现在我想在 503s 上添加应用程序范围的重试。我为此添加了一个模块,如下所示:

这适用于重试 503,成功的尝试由 Uptime.get 调用者中的成功回调处理,如预期的那样。但是,如果服务器返回一些其他错误,那么我会得到“未处理状态”打印输出,但既没有“new_uptime”也没有“读取正常运行时间失败”。我的拒绝去哪儿了,我该如何解决这样的问题?

0 投票
4 回答
19945 浏览

javascript - 使用 $resource 时量角器超时等待与页面同步

我正在用一个小型 AngularJS 应用程序测试 Protractor。

这是测试:

控制器:

草稿服务:

使用 Protractor 运行此测试会导致以下错误:

但是,如果在控制器中我更改此行:

对此:

测试按预期失败,但更重要的是:它不会超时。

启用 query() 后,无论是在浏览器中手动运行应用程序,还是查看 Protractor 打开的浏览器窗口时,API 返回的数据都会由中继器正确显示。

为什么 Protractor 在服务与 API 通信时无法与页面同步?

AngularJS 是 v1.2.0-rc3。量角器是 v0.12.0。

0 投票
1 回答
296 浏览

angularjs - $resource 自定义操作将我的作用域变量替换为服务器响应

我正在使用带有自定义操作的 $resource。

我可以毫无问题地检索我的用户对象。问题是当我调用自定义操作时,我的本地范围用户对象的值被服务器响应替换。这是一个问题,因为服务器响应是{ success : true },这会导致我的本地对象丢失其所有字段值。

我知道 RESTful 哲学指出,例如对资源的 POST 将更新该资源(在服务器上),然后返回更新资源的副本。我知道这就是 AngularJS $resouce.$save 的工作原理。但它必须真的适用于我的自定义操作吗?

0 投票
1 回答
934 浏览

php - 使用 Angular 资源服务 $save 功能的正确方法

我正在使用角度资源尝试使用角度 $save 函数。

默认情况下 $save 将模型发送回服务 URL。但是,它看起来希望模型返回到服务(如果我不这样做,我的模型是空的)。我想知道向控制器返回消息和错误的最佳方式是什么。

我的解决方案是在我的 PHP 中创建一个新类,该类有一个错误数组,用于存储处理过程中遇到的任何错误,以及一个存储模型以供返回的字段。然后在回调函数中发回并处理:

这些行在这里:$scope.user=User.get({id:data.data.UserName});我必须使用,因为如果我只是将我的分配$scope.userdata.data,用户不再使用该服务,当我ApplyChanges再次尝试时我会得到一个错误。

那么,有没有办法更无缝地做到这一点?因为它是我必须打一个额外的电话来获取模型。我是否应该仅在出现错误时才发送错误,然后再通过额外的回调来获取模型?有没有更好的办法?

0 投票
2 回答
785 浏览

javascript - 迭代服务返回的 JSON 角度

我正在尝试通过 id 进行迭代和搜索,并通过控制器中的 $resource 从下面显示的类型的 JSON 对象返回与 id 对应的其他值。我不明白在这种情况下我错在哪里?请帮忙!

这是控制器

JSON 的类型为: