确定AngularJS中是否更改了具有初始数据的数据

时间:2014-12-15 06:29:29

标签: angularjs

我必须将更新的数据与AngularJS中最初加载的数据进行比较。我尝试了以下方式,但我没有得到更新。

$http.get('users').then(function (resp) {
    $scope.items = resp.data.items;
    $scope.oitems = resp.data.items;

});

此处$scope.items可以在表单中更新,

$scope.doneEditing = function () {

    if (!angular.equals($scope.items, $scope.oitems)) {
        alert('changed');
    }
  }

以我的方式,我无法跟踪初始数据的变化。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

如果你喜欢

$scope.items = resp.data.items;
$scope.oitems = resp.data.items;

$scope.items$scope.oitems指向内存中的同一对象。因此,在您更改$scope.item后,您将在$scope.oitems中拥有相同的更改对象。

您需要为$scope.oitems创建一个单独的对象initial值为$scope.items,以便您可以使用angular.copy();

<强>溶液

$http.get('users').then(function (resp) {
    $scope.items = resp.data.items;
    $scope.oitems = angular.copy($scope.items);
});


$scope.doneEditing = function () {
    if (!angular.equals($scope.items, $scope.oitems )) {
        alert('changed');
    }
}
相关问题