在angular中深度复制对象?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (285)

我有服务器接受JSON并应用一些逻辑,然后将对象存储在D B。可以说我的表单是用DB保存团队的。服务器接受团队为json。该团队有一组TeamMember对象,我的表单有一个简单的字段用于输入团队成员信息并将其添加到团队teamMembers数组中。现在问题出在了,当我将一个团队成员添加到数组列表中并且想要添加另一个团队成员时,当我在该字段中输入时,添加的成员也会被更改。

$scope.addTeamMember=function(teamMember){
   $scope.team.teamMembers.push(teamMember);
}

这是因为我将相同的参考放入teamMembers数组中,所以我添加了几次相同的对象。为了避免这种情况,我应该创建一个新的团队成员对象,复制所有teamMember属性并将其添加到数组中。

 $scope.addTeamMember=function(teamMember){
       var newTeamMember; /*<--- copy teamMember */
       $scope.team.teamMembers.push(newTeamMember); /*and add newTeamMember*/
    }
提问于
用户回答回答于
$scope.addTeamMember = function(teamMember) {
   var newTeamMember = angular.copy(teamMember);
   $scope.team.teamMembers.push(newTeamMember);
};

扫码关注云+社区

领取腾讯云代金券