AngularJS:不能将$ scope对象推送到结束b / c数据不断更新

时间:2014-09-20 00:28:14

标签: javascript json angularjs

每次用户提交表单时,字段都在$scope.params对象中。我想跟踪$scope.history对象上的所有提交数据。所以我在做:

$scope.history.push($scope.params)

这不起作用,因为当我输出到控制台时,每个实例只显示表单提交的最新值。例如,如果我提交表单三次,每次我更改“关键字”,这就是它向我显示的内容:

{
    { keywords: 'Test 3' },
    { keywords: 'Test 3' },
    { keywords: 'Test 3' }
}

但这正是我所期待的:

{
    { keywords: 'Test 1' },
    { keywords: 'Test 2' },
    { keywords: 'Test 3' }
}

如何获得所需的结果?

1 个答案:

答案 0 :(得分:2)

您正在将$scope.params的引用推送到数组中,以便每个元素指向同一个对象。你每次都需要复制一份......

$scope.history.push(angular.copy($scope.params));