namespace.aaa=response;
namespace.bbb=response;
响应是来自服务的数据。我只是将它们分配给两个模型(aaa,bbb(。然后将模型(命名空间.aaa(分配给网格。如果我在网格中进行更改,它显然会影响模型(命名空间.aaa(。没事。但它也会影响另一个模型(命名空间.bbb(。
应该如何防止这种情况?我需要两种模型。无法重复服务以逐个将数据分配给模型。
您应该使用 angular.copy();
创建响应的副本
为对象赋值时,在 JavaScript 中有两种类型的赋值:按值赋值和按引用赋值。字符串、数字、布尔值由值分配,其他对象由引用分配,因此在代码中namespace.aaa
和namespace.bbb
都指向原始对象response
,当您将namespace.aaa
分配给网格时,它也指向原始response
。因此,请使用angular.copy();
进行您的一项作业。
更多关于 angular.copy(( - https://docs.angularjs.org/api/ng/function/angular.copy
有关 JS 中的值分配的更多信息 - http://docstore.mik.ua/orelly/webprog/jscript/ch11_02.htm
也许尝试将angular.copy();
用于"bbb"模型 - https://docs.angularjs.org/api/ng/function/angular.copy