在 AngularJs 中使用 $resource 来保存对象数组

2023-11-23

我在用$resource使用查询从服务器检索数据。 服务器返回一个对象数组,我将其存储在斯图克利斯特。 我可以发送(更新的)内容斯图克利斯特通过循环数组并使用 $save 将数组的每个项目发送回服务器来返回到服务器。 我现在想发送所有项目(整个斯图克利斯特)一次性发送到服务器,无需使用循环。

当尝试节省$时斯图克利斯特,Angular 抛出“destination.push 不是函数”错误。 如何实现这一点$resource?

这是代码:

Service:

var stukModule = angular.module('stuklijstServices', ['ngResource'])
stukModule.factory('Stuklijsten', function($resource){
 return $resource('rest/stuklijsten/:stuklijstID', {} );
});

控制器:

//Get the data from server      
  $scope.stuklijst = Stuklijsten.query({stuklijstID: $routeParams.stuklijstID});

//See below for sample of data returned by server
//Users can update the data and request a save using saveStuklijst

//Send them back to server (using saveStuklijst(Stuklijst))
  $scope.saveStuklijst = function(lijst) {
    //sending items from stuklijst one by one :
    for(var i = 0; i < lijst.length; i++) 
        {// console.log(i);
         // console.dir(lijst[i]);
          lijst[i].RowID = i
          f = new Stuklijsten(lijst[i]); 
          f.$save({stuklijstID: $routeParams.stuklijstID}); 
        } ;
    };

服务器返回并存储在Stuklijst中的数据:

 [{"Name":"K FlxMT in DG met diameter 025 cm","LineType":0,"ProdID":"DG025KFLXMT","RowID":7,"Unit":"stk","Quantity":1},{"Name":"SPR Fl in DG met diameter 025 cm","LineType":0,"ProdID":"DG025SPRFL","RowID":8,"Unit":"stk","Quantity":1},{"Name":"T FlxFl in DG met diameter 025 cm","LineType":0,"ProdID":"DG025TFLXFL","RowID":9,"Unit":"stk","Quantity":0},{"Name":"VER PL EX in DG met diameter 025 cm","LineType":0,"ProdID":"DG025VERPLEX","RowID":10,"Unit":"stk","Quantity":0},{"Name":"K FlxMT in PV met diameter 008 cm","LineType":0,"ProdID":"PV008KFLXMT","RowID":11,"Unit":"stk","Quantity":0}] 

您可以通过重新定义资源来发送对象数组save指定函数isArray=true像这样:

stukModule.factory('Stuklijsten', ['$resource', function ($resource) {
    return $resource(
        'rest/stuklijsten/:stuklijstID',
        {},
        {
            save: {
                method: 'POST',
                isArray: true
            }
        }
    );
}]);

然后,在您的控制器中,您可以组装列表并将所有内容保存在一个 http 请求中(不那么啰嗦的 API):

$scope.saveStuklijst = function(lijst) {
    var some_list = [];
    for(var i = 0; i < lijst.length; i++) {
        lijst[i].RowID = i
        f = new Stuklijsten(lijst[i]); 
        some_list.push({stuklijstID: $routeParams.stuklijstID}); 
    };
    Stuklijsten.save(some_list);

如果您仍然希望能够发布单个对象,您可以使用相同的概念来创建一个saveBulk保留原始功能save对于单个对象。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 AngularJs 中使用 $resource 来保存对象数组 的相关文章

  • AngularJS - 获取已定义路由的列表 - $routeProvider

    我正在尝试实施named routes 所以我不必写整个路径 经常改变 我想我可以编写一个服务来返回定义的路由列表和一个将对象转换为路由的过滤器 使用示例如下所示 a Click here a 假设我已将 name detail 添加到我的
  • Java EE 目录结构

    我对以下教程有疑问 http www mkyong com jsf2 jsf 2 internationalization example http www mkyong com jsf2 jsf 2 internationalizatio
  • 具有恒定长度的 System.arraycopy

    我正在玩 JMH http openjdk java net projects code tools jmh http openjdk java net projects code tools jmh 我偶然发现了一个奇怪的结果 我正在对制
  • Angular,当任何资源处于待处理状态时显示加载

    我已经编写了一段代码来显示加载器 div 当任何资源处于待处理状态时 无论它是通过 http get 还是路由 ng view 获取的 我不仅仅想要信息 如果我变坏了 流程处理服务 app service flowHandler funct
  • Postgres JSONB:数组数组的 where 子句

    postgres 中有 v 9 5 如果有的话 create table json test id varchar NOT NULL data jsonb NOT NULL PRIMARY KEY id 其中 data 是 json 并且包
  • Angular UI select:从远程服务获取数据

    我正在使用角度用户界面选择 https github com angular ui ui select https github com angular ui ui select 我查看了演示的可用位置这个笨蛋 http plnkr co
  • Numpy - 根据表示一维的坐标向量的条件替换数组中的值

    我有一个data多维数组 最后一个是距离 另一方面 我有距离向量r 例如 Data np ones 20 30 100 r np linspace 10 50 100 最后 我还有一个临界距离值列表 称为r0 使得 r0 shape Dat
  • 将多维数组转换为单数组(Javascript)

    我有一个对象数组 来自 XLSX js 解析器 因此其长度和内容各不相同 表示已给予项目的资助 简化后 它看起来像这样 var grants id p 1 location loc 1 type A funds 5000 id p 2 lo
  • 使用 Java 进行 MongoDB 查询。计算数组中的匹配项

    我在 Mongo 中存储了类似于以下内容的数据 LIST NAME a VALUE z NAME b VALUE y NAME c VALUE x NAME d VALUE w NAME e VALUE v NAME f VALUE u N
  • 格式化多维数组 Python

    如何编写代码来更改多维数组中每个单独数组的值a出现负值后立即归零 所以里面的第二个数组a有负值 12 34 5 6 88 10 30 75 10 会将其所有值及其后的值转为零 将数组变成 12 34 5 6 88 0 0 0 我怎样才能获得
  • 需要解释搜索最小大和的算法

    我正在解决 Codility 问题作为练习 但无法回答其中一个问题 我在互联网上找到了答案 但我不明白这个算法是如何工作的 有人可以引导我逐步完成它吗 这是问题 You are given integers K M and a non em
  • Pygame - 使用 SurfArray 将某种颜色的像素重新着色为另一种颜色(数组切片问题)

    我正在尝试为游戏制作调色板交换功能 并且正在尝试找到一种将某种颜色的像素颜色更改为另一种颜色的方法 我已经能够使用我在教程中找到的这个函数使所有像素具有相同的颜色 def color surface self surface red gre
  • 调整ArrayBuffer的大小

    如果我想创建一个数组缓冲区 我会写 var buff new ArrayBuffer size 但是如何调整现有缓冲区的大小呢 我的意思是 在缓冲区末尾添加更多字节 ArrayBuffer 本身没有设置 有set https develop
  • 需要从数组中删除字符串[重复]

    这个问题在这里已经有答案了 我在 for 循环中有一个数组 如下所示 var arr abc 5 city 2 area 2 max choice 我只需要这样的数字 var arr 5 2 2 有人可以在这里帮忙吗 另一种方法是使用转换后
  • 从角度 $uibModal 背景单击返回数据

    我正在尝试从 uibModal 传回一个值 如果用户单击模式的关闭按钮 我可以定义返回 scope close function modalInstance close scope editMade 但如果用户单击背景区域 这将不起作用 如
  • AngularJS中$scope和scope的区别

    我是 AngularJS 的新手 我想知道有什么区别 scope在 angularjs 控制器中和scope在 angularjs 指令中 我尝试在控制器中使用范围 但出现以下错误 错误 injector unpr 未知提供程序 scope
  • 使用命名的成功/错误回调在 AngularJS 中声明一个 Promise

    我正在尝试做一些与 http 服务非常相似的事情 根据我的理解 http 返回一个 Promise 对象 使用它时 语法是 http success function data success callback error function
  • Redim Preserve 给出“下标超出范围”

    我想要Redim Preserve一个数组我不断收到错误 下标超出范围 我知道只有最后一个维度的大小可以更改 这正是我正在做的事情 这里出了什么问题 数组的类型是Variant BmMatrix Sheets BENCH Range a60
  • jQuery / Ajax:如何循环遍历数组作为 Ajax 成功函数的一部分

    我有一个阿贾克斯调用返回一个数组并需要对该数组中的每个值执行某些操作 到目前为止 我有以下内容 但这会返回以下错误 Uncaught TypeError Cannot use in operator to search for length
  • 将数组作为参数传递

    如果我们修改作为方法内参数传递的数组的内容 则修改是在参数的副本而不是原始参数上完成的 因此结果不可见 当我们调用具有引用类型参数的方法时 会发生什么过程 这是我想问的代码示例 using System namespace Value Re

随机推荐

  • Android,使用 javah 生成 jni 头文件,显示找不到 org.opencv.core.Mat 的错误

    当我用 jni 编译 java 类中的本机方法时 我只是遇到了一个恼人的问题javah生成 JNI 头文件 如果该类使用了第3方包 例如 org opencv core Mat 则javah会显示找不到 org opencv core Ma
  • 获取函数的元数

    在 Javascript 中 如何确定为函数定义的形式参数的数量 注意 这不是arguments调用函数时的参数 而是定义函数时使用的命名参数的数量 function zero Should return 0 function one x
  • 如何从Python中的url中删除scheme?

    我正在使用一个返回 url 的应用程序 用Flask 我想要URL显示给用户尽可能干净 所以我想删除http 从中 我看了看 发现了urlparse库 但找不到任何如何执行此操作的示例 最好的方法是什么 如果urlparse是不是太过分了
  • Interface Builder 中带有自动 NSNumberFormatter 的 NSTextField

    我制作 iOS 应用程序已经有一段时间了 但我正在尝试 MacOS 开发 我正在向我的 UI 添加一个 NSTextField 我注意到在 Xcode 中图形小部件中的选项之一是 NSTextField with NSNumberForma
  • Javascript DOM 树复制用于操作

    由于页面的 DOM 树是活动的并且始终反映在浏览器中 因此出于某种目的修改此 DOM 树而不影响实际渲染的树的最佳方法是什么 假设我的目的是交换某些子节点并查看 DOM 树仍然保持多么相似 创建重复树是唯一的解决方案吗 如果是的话 有没有一
  • 您必须在安全防火墙配置中使用 form_login 配置要由防火墙处理的检查路径

    我有网络服务 它是我的 常规 用户的提供者 我想为我的管理员使用 FosUserBundle 以上是我的安全配置 普通用户登录没有问题 但是当我想以管理员身份登录时 我收到以下消息 您必须在安全防火墙配置中使用 form login 配置要
  • Django 测试表没有被创建

    我正在尝试为我的 django 项目编写测试用例 但是当我运行时 manage py 测试 命令 它正在创建测试数据库 但没有创建任何表 并且我收到一个错误 表明表不存在 欢迎任何建议 这是我通过 manage pyspectdb gt m
  • PySpark 数据帧 to_json() 函数

    我有一个如下所示的数据框 gt gt gt df show 10 False id name age salary 10001 alex 30 75000 10002 bob 31 80000 10003 deb 31 80000 1000
  • 使用 twitter4j 停止 Twitter 流并返回状态列表

    使用 Twitter4j 提供的代码示例 我希望在收集 1 000 个状态列表后停止流 并返回此列表 我怎样才能做到这一点 public class Stream public List
  • 如何在 Windows 之间切换 python 版本

    我正在尝试在 python 版本之间切换3 6 6 and 3 7 0在窗户中 我试过py 3 6 6并且不起作用 寻找选项py h 没有找到 我看到了一些关于在 python 版本之间切换的答案2 x and 3 x通过增加 python
  • 复选框值 0 或 1

    在很多情况下 我有如下复选框
  • 类型“System.Web.IHtmlString”在未引用的程序集中定义

    现在有点失落 我正在按照以下文章来测试 学习嵌套布局 http blogs msdn com b marcinon archive 2010 12 15 razor nested layouts and redefine sections
  • 如何从 XSD 架构构建数据库并导入 XML 数据

    我有一个复杂的 XSD 架构和数百个符合该架构的 XML 文件 如何自动创建相关的 SQL Server 表来存储 XML 数据 我考虑过使用 XSD 模式创建 C 类xsd exe工具 并让 Subsonic 之类的东西弄清楚如何从中创建
  • Visual Studio 2012 中的经典 ASP 调试禁用应用程序调试

    我想调试Classic ASP网站位于Visual Studio 2012 with IIS Express 因此 我附上了iisexpress exe in VS 2012 但它显示Application Debugging is dis
  • 检测并删除文本区域中的 URL

  • Kendo UI Grid 序列号列

    我试图将 Kendo 网格的第一列作为串行索引 它不受行记录排序的影响 我有什么办法可以实现这个目标吗 谢谢 您可以使用模板列来实现此目的 这是一个现场演示 展示了如何做到这一点 http jsbin com olutin 10 edit
  • 为什么 Python 返回负时区值?

    For 时间 时区 Python 文档说 本地 非 DST 时区的偏移量 以 UTC 以西的秒数为单位 西欧大部分地区为负值 美国为正值 英国为零 有谁知道为什么它对西欧大部分地区返回负值 这些国家处于正抵消状态 而不是负抵消状态 示例 布
  • iOS 8 中自动调整 UITableViewCell 大小

    我有一个 UITableViewCell 子类 其中包含多行标签 我希望单元格根据该标签的内容动态调整自身大小 我知道 iOS 8 引入了基于自动布局约束的自动调整单元格大小 并且我已经在 SO 上找到了几个这样的示例 但我在正确实现此行为
  • 如何默认将AWS S3存储桶中的所有对象设为公开?

    我正在使用 PHP 库将文件上传到我的存储桶 我已将 ACL 设置为公共读写它工作正常 但文件仍然是私有的 我发现如果我改变受赠者给所有人它使文件公开 我想知道的是我该如何制作所有对象的默认受让人在我的桶中设置为 每个人 或者还有其他解决方
  • 在 AngularJs 中使用 $resource 来保存对象数组

    我在用 resource使用查询从服务器检索数据 服务器返回一个对象数组 我将其存储在斯图克利斯特 我可以发送 更新的 内容斯图克利斯特通过循环数组并使用 save 将数组的每个项目发送回服务器来返回到服务器 我现在想发送所有项目 整个斯图