我在某些情况下使用angular.copy,例如将模型默认值复制到表单模型中,如下所示:
var customerModel = {
name: '',
point: 0
};
$scope.customer = angular.copy(customerModel);
function save() {
//... Reset $scope.customer after success submit
$scope.customer = angular.copy(customerModel);
}
如何避免默认客户模型的更改?
但是为什么要复制空对象或者数组?{} 或 []
我发现在一些代码中使用了 angular.copy 来复制空对象或者数组。为什么他们不直接将空对象赋值给变量呢?
$scope.customer = {}; // or [] for array
如果您在空对象或数组上使用复制,能否解释一下其好处?
那么ajax响应($http)呢?
还有一个问题,您对ajax响应采取了什么操作?是直接复制还是直接分配给变量?
$http
.get('example.com/api/v1/get/customer/1')
.success(function(response) {
$scope.customer = angular.copy(response.data);
// or do you use $scope.customer = response.data ?
})
;
如果您使用了复制功能,那么您认为响应对象会发生什么情况? 它是否仍留在内存中?还是会自动删除?
response.data
而不是response
,所以你不知道何时GC会释放response
,因为它可能被其他地方使用。 - Hacketo