问题标签 [angular-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 投票
1 回答
9377 浏览

angularjs - $resource 中删除和删除方法的区别?

delete和方法有什么区别remove?它们都使用DELETEHTTP的方法。我找不到任何合理的信息。

0 投票
2 回答
4665 浏览

angularjs - AngularJS:通过带有数组类型参数(复选框、多选等)的 $resource 发送请求

当我的 GET 参数中有一组复选框(client_status)时,我在尝试使用 AngularJS 中的 $resource 库发送正确序列化的 GET 请求时遇到问题。

这是我现在在控制器中的代码:

以上将发送以下 GET 请求:

但是,据我了解,以上似乎不是正确的格式。有人可以在这里指导我吗?以下是我的期望:

非常感谢您的帮助。

托马斯

0 投票
2 回答
540 浏览

angularjs - $resource 更新方法行为异常

对于特定的 $resource,读取/创建/删除都可以正常工作,但是编辑并不顺利。

在我的应用程序配置中,我有:

这对 POST/PUT 都适用,也许值得一提。

我的 $resource 定义如下所示:

然后在 ProjectEditCtrl 中:

现在,当我实际运行时,$scope.projectDo()我会收到一串请求,而不仅仅是 PUT,显示在此屏幕截图中:

在此处输入图像描述

为什么除了 之外还有其他调用PUT project/1?请注意,正在发生 DELETE 500,因为:id路径中没有。

更新

只是为了好玩,我决定将整个 $resource 定义更改为以下内容:

使用此定义进行测试确认添加/删除控制器尊重它,并尝试将 GET 用于Project.deleteProject.save

现在跑步Project.update似乎减少了奇怪的呼叫。和以前一样:

  • 发布 x1
  • 得到 x2
  • 删除 x2
  • 放 x2

在强制除update()GET 之外的所有内容之后,我现在看到:

  • 没有 POST
  • 得到 x2
  • 删除x1
  • 放 x2

仍然很困惑,但可能有用的信息。

更新 2

决定尝试放弃 PUT 方法,因此Project.update()改用 POST,但是类似的问题出现在大量不受欢迎的请求中。

另请注意,所有这些请求都在同一时间点触发,这意味着它们都不是顺序的或对另一个请求的完成做出反应。

更新 3

尝试使用不同的词,而不是update查看我是否以某种方式践踏现有代码,但Project.whaaaat()效果相同。

更新 4

好吧,现在离真相更近了一点。尝试了未定义的方法,并且发生了相同的行为。我想当我调用一个无法识别的方法时,我只是触发了每个定义的方法?

更新 5

看起来问题是由这两行的组合引起的:

$.param在它返回的对象上运行时,Project.get它会调用所有Project方法,因为它们实际上是属性。

projectForm在属性上运行一个循环,typeof显示:

name 是一个字符串 id 是一个数字 $get 是一个函数 $save 是一个函数 $query 是一个函数 $remove 是一个函数 $delete 是一个函数 $update 是一个函数

有没有办法在对象上运行 $.param 并防止不可序列化属性的序列化?

0 投票
2 回答
1421 浏览

javascript - Angular JS 从 1.1.0 升级到 1.1.1 后失败

当我升级 ng-repeat 需要非常长的时间来加载并尝试显示更多内容框而没有 $resource 提供的内容。

我已将问题缩小到 1.1.0 和 1.1.1 之间的更新。我查看了更新日志,但没有任何内容显示我是罪魁祸首,但它一定在里面。

变更日志 => https://github.com/angular/angular.js/blob/master/CHANGELOG.md#111-pathological-kerning-2012-11-26

此应用程序的存储库 => https://github.com/brianpetro/resume

目前我的角度看起来像:

这发生在使用 ng-repeat 的多个视图上:

这是 AngularJS 版本 1.1.0: 这是 AngularJS 版本 1.1.0 这是 AngularJS 版本 1.1.1: 这是 AngularJS 版本 1.1.1

0 投票
0 回答
332 浏览

angularjs - 角度资源中的错误回调,例如

我在 django 中使用 ng-resource 时遇到了麻烦,因为它总是删除尾部斜杠。因此,我通过创建自己的资源来遵循https://stackoverflow.com/users/192810/misko-hevery指南https://stackoverflow.com/a/11850027 。我想问一下我的代码是否是实现错误回调函数的正确方法?IE:我的服务器响应如下 {err : "that book already exists!"}

像这样修改create方法可以吗?

我这样修改控制器

0 投票
1 回答
1413 浏览

angularjs - 使用 $resource 保存后如何从 $scope ng-repeat 更新项目

我有一个显示项目列表的角度视图,每个项目都有两个按钮将每个活动设置为暂停/开始。我知道这是 angular $resource 的一个非常基本的问题,但是我无法在成功 $start 时更新项目(在成功回调中,我无法访问与该项目相关的任何内容)。

在我的观点中:

0 投票
2 回答
48743 浏览

angularjs - 在 $resource 上发送请求正文

我查看了 $resource 的Angular API,但没有找到将 a 发送Request Body到 RESTful 服务的方法。

我知道使用 $http 方法可以做到这一点,就像这里一样,那么,是否也可以使用$resource

显然这是$resource.

action - {string} - 动作的名称。此名称将成为您的资源对象上的方法的名称。

方法- {string} - HTTP 请求方法。有效方法为:GET、POST、PUT、DELETE 和 JSONP

params – {object=} – 此操作的可选预绑定参数集。

isArray – {boolean=} – 如果为 true,则此操作的返回对象是一个数组,请参阅返回部分。

目前我没有找到任何方法来发送包含 JSON 对象的请求负载。

0 投票
1 回答
2125 浏览

angularjs - 在angularjs中将资源包装在单个服务中?

最近我发现了一个TokenHandler,它允许我在每个 rest api 请求上发送一个令牌。您可以在此处找到详细说明:http: //nils-blum-oeste.net/angularjs-send-auth-token-with-every--request/#.UXtYlbVTDIX

我在我的项目中实现此处理程序时遇到问题。我的项目正在处理一些资源,让我谈谈PostAuthor。我目前正在做的是:

我将它包装在我的主应用程序模块中

我的问题是,我在哪里设置 TokenHandler?它必须分配给一个模块,对吗?我会将它分配给例如 PostService,但结果我将无法在 AuthorService 中使用它?

因此,我还有另一个问题。是否可以将多个资源包装在一项服务中,例如:

0 投票
1 回答
2569 浏览

angularjs - 使用 $resource 承诺模式缓存数据

假设我的服务从 $resource get 返回一个承诺,我想知道这是否是缓存数据的正确方法。在这个例子中,在点击返回箭头并返回搜索结果后,我不想再次查询网络服务器,因为我已经有了它们。这是处理这种情况的正确模式吗?下面的示例是查询 Flixter (Rotten Tomatoes) A​​pi。

精简代码:

控制器:

服务:

我无法提供一个工作示例,因为它会暴露我的 API 密钥。

0 投票
2 回答
2821 浏览

javascript - 使用资源填充 Angularjs 中的范围属性

免责声明我来自淘汰赛,所以我在改变如何做某些事情的思路时遇到了一些麻烦,这就是其中之一......

我有<input>一个用户可以在其中输入电影标题,并且应该显示电影列表。电影集合是通过调用从我的 rest api 提供的http://www.example.com/api/movies?title=matrix。该 api 包装在一个角度资源模块中。

我认为这$scope.movies = Movie.query({ title: $scope.searchValue });会在任何时候更改时自动更新,$scope.searchValue但它似乎并没有那样工作。

只是为了完整起见,这里是我对这个特定控制器的标记......

$scope.movies用户在 中输入值后填充搜索结果的正确方法是<input>什么?