如何在角度js中保留$ scope变量的副本?

时间:2014-09-11 10:37:32

标签: javascript angularjs

如果您可以查看此plunker link,您就会知道我的确切问题。我无法保留范围变量的旧副本。

以下是我的代码。

$scope.init = function() {
  var data = [{
    id: 1,
    d: 'mon',
    sel: false
  }, {
    id: 2,
    d: 'fri',
    sel: false
  }, {
    id: 3,
    d: 'fri',
    sel: false
  }, {
    id: 4,
    d: 'sun',
    sel: false
  }];

  $scope.myData = data;
  $scope.oldMyData = data;


  angular.forEach($scope.myData, function(value, key) {
    if(value.d == 'sun'){
      value.sel = true;
    }
  }, $scope.myData);

此处oldMyData也在不断更新。如何保留旧数据的副本?

p.s:我没有使用jquery。

1 个答案:

答案 0 :(得分:2)

var original;
original = angular.copy($scope.myData);

$rootScope.original = angular.copy($scope.myData); // this original variable can access inside your angular app

别忘了将$ rootScope注入控制器

您拥有var original中的旧值:)