我在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改变?
谢谢!
答案 0 :(得分:1)
这是因为$scope.resume
和$scope.resume_2
都对对象(resume
)保持相同的引用,因此,当您更改该对象中的某些内容时,两个$ scopes变量都将具有因为两者具有相同的引用而反映出的变化,但是,您可以使用angular:
$scope.resume = angular.copy(resume);
$scope.resume_2 = resume;