AngularJS1修改JSON属性时覆盖整个数据结构的问题求助
问题分析
你现在遇到的核心问题是:想更新原始JSON里的consumer_desc字段,但修改后丢失了整个JSON结构,只保留了修改的字段。这是因为你找错了字段的层级路径——原始JSON中的consumer_desc是嵌套在data对象内部的,而你直接给顶层对象操作了consumer_desc属性,根本没触及到正确的目标字段。
解决方案
只需要调整赋值的路径,把修改指向data对象下的consumer_desc即可,修改后的代码如下:
// 正确路径:访问data子对象里的consumer_desc字段 $scope.subStationsData.data.consumer_desc = $scope.searchName; var raw = $scope.subStationsData; console.log('raw: ', raw); console.log('$scope.searchName: ', $scope.searchName);
效果验证
修改后,raw对象会完整保留原始JSON的所有结构(包括data、message、status以及data内部的cols、vals等所有子属性),仅将data.consumer_desc的值替换为$scope.searchName的内容,完全符合你期望的结果。
为什么之前的代码出错?
你之前写的$scope.subStationsData.consumer_desc = $scope.searchName,是在顶层对象上新增/修改了一个consumer_desc属性,而不是修改data内部的那个目标字段。这就导致控制台输出的raw只显示了这个新增的属性,原始的完整JSON结构并没有被正确修改。
内容的提问来源于stack exchange,提问作者user1490238
相关产品推荐
相关产品推荐

