AngularJS使因变量静态

时间:2015-10-22 19:55:23

标签: javascript angularjs angular-ui-router

我在AngularJS中使用ui.router。我的路线中有一个已解决的依赖关系:

 .state('root.resume', {
    url: "/resume",
    templateUrl: "resume/index.html",
    title: "Resume",
    controller: "ResumeCtrl",
    resolve: {
      resume: ['ResumeFactory', function(ResumeFactory){
        return ResumeFactory.get().$promise;
      }]
    }
  })

我在控制器中包含依赖项:

(function() {
  'use strict';

  angular
    .module('controllers.resume', [])
    .controller('ResumeCtrl', [
    '$scope', 'resume',
    function($scope, resume) {

      $scope.resume = resume;
      $scope.resume_2 = resume;

      $scope.cancel = function(obj) {
        $scope.resume[obj] = this.resume[obj];
      }

    }]);
})();

在我看来,当我对$ scope.resume进行更改时,它也会更改$ scope.resume_2。为什么会这样?我有没有办法让$ scope.resume_2不会根据$ scope.resume改变?

谢谢!

1 个答案:

答案 0 :(得分:1)

这是因为$scope.resume$scope.resume_2都对对象(resume)保持相同的引用,因此,当您更改该对象中的某些内容时,两个$ scopes变量都将具有因为两者具有相同的引用而反映出的变化,但是,您可以使用angular:

创建副本
 $scope.resume = angular.copy(resume);
 $scope.resume_2 = resume;