问题标签 [ngresource]

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 回答
1286 浏览

angularjs - 使用 ngResource 模拟 PUT 请求

User 资源的声明类似于:

如您所见,PUT 方法的 -default- 参数是资源中的 id 属性。

如果您想测试:

我在测试中不断失败,因为它正在生成的实际 URL 是:'api/user/.json'。id 属性未包含在 URL 中。

这是有道理的,因为我没有为模拟对象指定 id 属性,我没有指定,因为我不知道该怎么做。

提前致谢。

0 投票
1 回答
7470 浏览

angularjs - 使用 ngResource 在 AngularJS 中设置 enctype

我正在使用 Angular 的 $resource 来上传文件。我需要将编码设置为 mulipart/form-data,但无论如何我都找不到在 $resource 中设置 enctype。

那可能吗?换句话说,$resource 可以用于文件上传,还是我必须更深入地使用 $http,使用 config 参数修改标头?

在 AngularJS 中发布多部分/表单数据表单的正确方法是什么?

0 投票
1 回答
220 浏览

angularjs - 如何在绑定回调函数中使用 ngResource?

我制定了一个指令,将点击事件与元素绑定。单击时,我想使用一个进行 ajax 调用的工厂。我该如何做到这一点?我的代码看起来像这样

绑定函数之外的第一个调用有效。现在,当我单击该属性时,它会记录“hello”,但不会调用getActivities().

0 投票
1 回答
548 浏览

angularjs - 在 ngResource 中处理加载子资源的最佳实践是什么?

背景:我是 Angular 的新手,这感觉更像是一个“在 AngularJS 中做这件事的正确方法是什么”之类的问题。

我的 API 后端有几个相关的对象,我需要请求这些对象并将它们组合成一个连贯的用户界面。它可以建模为订阅中心的东西,所以我有:Subscription hasMany Subscription_Items,belongsTo Source。

我想要做的是查找用户的订阅 (/api/subscriptions?user_id=1),它给了我一些 JSON,其中包含一个 subscription_item_ids=[1,2,3 ...] 数组。然后我想查询这些 id,并在 source_id 上查询服务器以提取共享信息,然后将所有内容很好地重新打包到 $scope 中,以便视图层可以轻松访问系统并可以执行诸如 ng-repeat= 之类的操作外部 ng-repeat="subscription in subscriptions" 中的“item in subscription.subscription_items”。

从概念上讲,这是有道理的,我已经想到了几种加载链接数据的方法,但我很好奇的是:这里的最佳实践是什么?我不想过度重新加载数据,所以它似乎是一个普通的旧函数,每次我查看一个项目时都会执行一个 REST 请求是一个坏主意,但与此同时,我不想只是推送数据一次,然后错过对项目的更新。

所以,问题是:处理这样的链接资源的最佳方式是什么,以符合 $scope 和 $apply 周期中嵌入的想法的方式将 hasMany 和 belongsTo 类型的连接追踪到其他模型?

0 投票
2 回答
2237 浏览

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

所以我有一个资源定义如下:

后来我接受了一些表单输入并执行以下操作

服务器通过重新发出对象的 JSON 并使用新的唯一 ID 设置位置标头来响应 POST 请求。问题是 Angular 没有将返回的 JSON 或 location 标头保存到对象中,并且没有使用来自服务器的 ID 进行设置以供将来操作。我尝试了很多事情,例如:

然而,返回的数据项似乎没有被使用。我错过了什么吗?这似乎是与 REST api 交互的一个非常常见的用例。

谢谢!

0 投票
1 回答
256 浏览

angularjs - 如何从 Angular $resource 中获取 JSON

如何从 $resource 中获取 get JSON 数据?

User.query目前所有的返回值User.$save()都是工厂对象。我希望能够保留$scope.users原始 JSON,以便我可以修改它并将数据发布到另一个 URL。

0 投票
2 回答
3057 浏览

ruby-on-rails - Rails will_paginate gem 与 angular.js 进行分页

上下文:我有一个 Rails 后端,用作 Angular.JS 前端应用程序的 API。

任务:我想从 Rails 后端检索不同种类的“恐龙”的所有记录。由于有超过 500 条记录,我想一次只获取 30 种。

我目前的方法:我在我的 Rails 索引控制器操作中为恐龙控制器使用 will_paginate gem。我让它像这样运行。

在我的 Angular 代码中:

我有一个名为 DinoApp 的模块,并且正在使用 ngresource 创建一个 Entry 资源

我的 Angular 控制器如下所示:

这行代码会在恐龙控制器的 index 操作中命中 API,并且一次只会返回 30 种“恐龙”:

现在 - 我如何让 angular.js 显示下一页按钮并将下一页附加到视图中?

0 投票
1 回答
934 浏览

javascript - 在 AngularJS 中嵌套资源

我正在使用 AngularJS 创建我的网站的“讨论”模块。

我实际上有两种用于客户端<->服务器通信的资源:

  1. 讨论 $resource(用于检索与讨论相关的信息,例如“标题”、“状态”等。讨论还包含消息数组。
  2. 消息 $resource

问题:当我加载页面时,我做了一个Discussion.query(),用于检索讨论标题等。为了节省客户端<->服务器请求,还返回了讨论的消息(除了讨论信息)。好吧,这很好,但是如果我想编辑或删除消息怎么办?当我使用“ Discussion ”模型对象获得它们时,消息不被视为 $resource消息,我无法$update或 *$delete 它们。

实际上,我可以只做一个“ Messages.get() ”来获取真正的 Messages $resources,但这会花费对我的服务器的新请求(延迟、SQL 查询......)。

目前,我找到了两种解决方法来实现这一目标:

  1. 使用Message $resource静态方法(Message.delete(...)等)
  2. “原始” $http请求

我对这两种解决方案并不满意,因为我想要一个尽可能简单的代码。

--

是否可以告诉 Angular “嘿,这个对象实际上是一个 Message $resource !” 当我使用其他资源检索消息时?对不起,奇怪的解释。我认为任何代码都无济于事,但问我是否需要。

0 投票
0 回答
1001 浏览

javascript - Angular 预输入、过滤、$resource 和 Promise

我正在使用这样的角度实现预输入:

在我的控制器中,我使用 $resource 从 ajax 服务中检索字符串数组。为了处理请求的异步性质,我使用了 $q 和 promises。

结果是正确的,除了客户端过滤没有发生。我的文本框中的每个输入都会导致从服务返回的整个数组显示在预先输入的弹出窗口中。

我究竟做错了什么?当我填充我的阵列服务器端时,是否允许我在 html 中使用过滤器?

0 投票
2 回答
484 浏览

javascript - AngularJS 将对象作为 PHP 的数组发送

我已经习惯了 AngularJS ng-resource 但我在序列化数组时遇到了问题。我的 ng-resource 是这样的

我的控制器看起来像这样:

问题是它通过了这样的条件:

它将作为必须解码的字符串传递给 php。我的问题是如何将条件作为 php 的关联数组传递?