Ade*_*lin 51 javascript angularjs
我想知道当你需要创建一个包含嵌入对象数组的简单对象时,是否有必要避免复制对象的引用.情况如下:我有服务器接受JSON并应用一些逻辑然后将对象存储在D B.假设我的表单用于在DB中保存团队.服务器接受团队为json.团队有一系列TeamMember对象,我的表单有一个简单的字段来输入团队成员信息并将其添加到团队teamMembers数组.现在问题就出现了,当我将一个团队成员添加到数组列表中并希望在我输入字段时添加另一个团队成员时,添加的成员也会被更改!我知道原因
$scope.addTeamMember=function(teamMember){
$scope.team.teamMembers.push(teamMember);
}
Run Code Online (Sandbox Code Playgroud)
这是因为我将相同的引用放入teamMembers数组中,所以我添加了相同的对象几次.为了避免这种情况,我应该创建一个新的团队成员对象,复制所有teamMember属性并将其添加到数组中.
$scope.addTeamMember=function(teamMember){
var newTeamMember; /*<--- copy teamMember */
$scope.team.teamMembers.push(newTeamMember); /*and add newTeamMember*/
}
Run Code Online (Sandbox Code Playgroud)
Ben*_*esh 116
你的问题说你想"避免深刻复制",但我不确定这是否准确.听起来你只想使用angular.copy,因为你需要创建团队成员的副本并将其添加到数组中:
$scope.addTeamMember = function(teamMember) {
var newTeamMember = angular.copy(teamMember);
$scope.team.teamMembers.push(newTeamMember);
};
Run Code Online (Sandbox Code Playgroud)