更改副本范围的值更改范围的值

时间:2015-10-08 11:01:46

标签: angularjs angularjs-filter

我不明白为什么要更改副本的值,更改$ scope的值:

RowNumber

输出:

    var tmpmember = $scope.registration.member;
    console.log($scope.registration.member.birth);
    tmpmember.birth=$filter('date')($scope.registration.member.birth,'yyyy-MM-dd');
    console.log(tmpmember.birth);
    console.log($scope.registration.member.birth);

有人可以向我解释一下吗?

非常感谢

1 个答案:

答案 0 :(得分:1)

在您提供的代码中,您尚未制作该对象的副本。相反,您已创建了指向同一对象实例的第二个变量。

如果您真的希望拥有副本而不是其他参考angular.copy,则Angular具有您可以使用的功能。 https://docs.angularjs.org/api/ng/function/angular.copy#!/

var tmpmember = angular.copy($scope.registration.member);
console.log($scope.registration.member.birth);
tmpmember.birth = $filter('date')($scope.registration.member.birth, 'yyyy-MM-dd');
console.log(tmpmember.birth);
console.log($scope.registration.member.birth);

结果:

Thu Mar 11 1954 01:00:00 GMT+0100 (CET)
261 1954-03-11
Thu Mar 11 1954 01:00:00 GMT+0100 (CET)