问题标签 [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.
angularjs - ngResource 解析嵌套资源
有哪些选项可以解决 ngResource 响应中的嵌套资源?
关于解析 ngResource 中嵌套资源的端点存在一些相关问题,但这个问题是关于何时 REST 响应包含嵌套在正在查询的集合中的第二个资源,尤其是您不会拥有的一对一映射例如pets/<id>/owner
作为自己的资源。
假设有两个资源,Pets
并且Owners
:
获取/宠物:
作为开发人员,Owner
有时我想查询整个资源,有时我想查询Pet
资源,然后我自动想将owner
属性解析为资源实例。
这是我目前的解决方案:
这里的问题很多。有诚信——一方面。我相信,这种实现允许同一资源的多个实例。然后是实用性。您还可以使用其他属性来跟踪(owner
和getOwner()
,而不仅仅是owner
;setOwner
如果您希望能够保存模型,则可能)。
可以在transformResponse
.
angularjs - 如何不以角度发送带有请求正文的 url 模板参数?
假设我有这样的资源设置:
有什么方法可以阻止type
和id
作为请求正文的一部分提交,而只是发送name
PUT 有效负载?我不控制我提交的 API,而且它似乎不喜欢我发送的额外参数。
谢谢!
更新- 2013 年 10 月 25 日 - 13:38
资源文档是这样说的:
如果参数值以 @ 为前缀,则从数据对象中提取该参数的值(对于非 GET 操作很有用)。
这意味着这应该从数据中删除参数:
但它似乎不起作用。还是不知所措。
angularjs - AngularJS $resource url 导致“问号”?不带参数出现
我有一个 $resource 为 :all 方法定义了一个自定义 url。
当我的页面加载时,请求会发送到“/api/objects/all.json?”。它加载正确,但存在 ? 让我很困惑。我没有给它传递任何参数,那么为什么 angular 会添加 ? 对请求?
我能以某种方式摆脱它吗?
javascript - 为什么我的角度资源会忽略特定于操作的 url?
我有以下角度代码:
标记如下所示:
当我单击按钮时,它会尝试向服务器发送 POST,但会发送到原始 URL 而不是特定于操作的 URL。请求中的 URL 如下所示:
知道为什么它试图发布到 just/post
吗?另外,知道为什么id=undefined
吗?在其他示例中,如果未指定 ID,则似乎?id=blah
只是不包含在请求中。先感谢您。
javascript - Angular Resource - 如何检查资源实例是否有任何未保存的更改?
我希望能够判断 $resource 实例是否已被用户修改 - 也就是说,它的当前状态是否与最初从服务器加载的状态不同 && 尚未 $saved。我怎样才能做到这一点?
angularjs - 为什么当我有 responseError 拦截器时没有调用我的 $resource 错误处理程序?
我正在构建我的第一个 Angular 应用程序,但遇到了问题。我有一个 AngularJS 资源,我用成功和错误回调调用它的 .get,如下所示:
我已经用来自服务器的各种错误状态对此进行了测试,它工作正常。现在我想在 503s 上添加应用程序范围的重试。我为此添加了一个模块,如下所示:
这适用于重试 503,成功的尝试由 Uptime.get 调用者中的成功回调处理,如预期的那样。但是,如果服务器返回一些其他错误,那么我会得到“未处理状态”打印输出,但既没有“new_uptime”也没有“读取正常运行时间失败”。我的拒绝去哪儿了,我该如何解决这样的问题?
javascript - 使用 $resource 时量角器超时等待与页面同步
我正在用一个小型 AngularJS 应用程序测试 Protractor。
这是测试:
控制器:
草稿服务:
使用 Protractor 运行此测试会导致以下错误:
但是,如果在控制器中我更改此行:
对此:
测试按预期失败,但更重要的是:它不会超时。
启用 query() 后,无论是在浏览器中手动运行应用程序,还是查看 Protractor 打开的浏览器窗口时,API 返回的数据都会由中继器正确显示。
为什么 Protractor 在服务与 API 通信时无法与页面同步?
AngularJS 是 v1.2.0-rc3。量角器是 v0.12.0。
angularjs - $resource 自定义操作将我的作用域变量替换为服务器响应
我正在使用带有自定义操作的 $resource。
我可以毫无问题地检索我的用户对象。问题是当我调用自定义操作时,我的本地范围用户对象的值被服务器响应替换。这是一个问题,因为服务器响应是{ success : true }
,这会导致我的本地对象丢失其所有字段值。
我知道 RESTful 哲学指出,例如对资源的 POST 将更新该资源(在服务器上),然后返回更新资源的副本。我知道这就是 AngularJS $resouce.$save 的工作原理。但它必须真的适用于我的自定义操作吗?
php - 使用 Angular 资源服务 $save 功能的正确方法
我正在使用角度资源尝试使用角度 $save 函数。
默认情况下 $save 将模型发送回服务 URL。但是,它看起来希望模型返回到服务(如果我不这样做,我的模型是空的)。我想知道向控制器返回消息和错误的最佳方式是什么。
我的解决方案是在我的 PHP 中创建一个新类,该类有一个错误数组,用于存储处理过程中遇到的任何错误,以及一个存储模型以供返回的字段。然后在回调函数中发回并处理:
这些行在这里:$scope.user=User.get({id:data.data.UserName});
我必须使用,因为如果我只是将我的分配$scope.user
给data.data
,用户不再使用该服务,当我ApplyChanges
再次尝试时我会得到一个错误。
那么,有没有办法更无缝地做到这一点?因为它是我必须打一个额外的电话来获取模型。我是否应该仅在出现错误时才发送错误,然后再通过额外的回调来获取模型?有没有更好的办法?
javascript - 迭代服务返回的 JSON 角度
我正在尝试通过 id 进行迭代和搜索,并通过控制器中的 $resource 从下面显示的类型的 JSON 对象返回与 id 对应的其他值。我不明白在这种情况下我错在哪里?请帮忙!
这是控制器
JSON 的类型为: