如何防止更改影响多个模型 angularjs


    namespace.aaa=response;
    namespace.bbb=response;

响应是来自服务的数据。我只是将它们分配给两个模型(aaa,bbb(。然后将模型(命名空间.aaa(分配给网格。如果我在网格中进行更改,它显然会影响模型(命名空间.aaa(。没事。但它也会影响另一个模型(命名空间.bbb(。

应该如何防止这种情况?我需要两种模型。无法重复服务以逐个将数据分配给模型。

您应该使用 angular.copy(); 创建响应的副本

为对象赋值时,在 JavaScript 中有两种类型的赋值:按值赋值和按引用赋值。字符串、数字、布尔值由值分配,其他对象由引用分配,因此在代码中namespace.aaanamespace.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

最新更新