Javascript Angular.copy-需要更多说明
我看到一个样本工作如下。。看到这个例子后,我有两个问题需要理解Javascript Angular.copy-需要更多说明,javascript,angularjs,Javascript,Angularjs,我看到一个样本工作如下。。看到这个例子后,我有两个问题需要理解angular.copy有人能帮我理解吗 下面是完整的html和js代码:- <!DOCTYPE html> <html ng-app="parking"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>C
angular.copy
有人能帮我理解吗
下面是完整的html和js代码:-
<!DOCTYPE html>
<html ng-app="parking">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Car Parking</title>
<link rel="stylesheet" href="">
<script src="js/angular.js"></script>
<script>
var myApp = angular.module("parking", []);
myApp.controller('parkingCtrl', ['$scope', function($scope){
$scope.cars = [
{plate: '6MBV006'},
{plate: '5BBM299'},
{plate: '5AOJ230'}
]
$scope.park = function (car) {
$scope.cars.push(angular.copy(car));
console.log(angular.copy(car));
delete $scope.car;
}
}]);
</script>
</head>
<body ng-controller="parkingCtrl">
<h3>[Packt] Parking</h3>
<table>
<thead>
<tr>
<th>Plate</th>
</tr>
</thead>
<tbody>
<tr>
<td ng-repeat="car in cars">{{car.plate}}</td>
</tr>
</tbody>
</table>
<label for="plate">
<input type="text" ng-model="car.plate">
</label>
<button ng-click="park(car)">Park</button>
</body>
停车场
var myApp=angular.module(“parking”,[]);
myApp.controller('parkingCtrl',['$scope',函数($scope){
$scope.cars=[
{图版:'6MBV006'},
{图版:'5BBM299'},
{图版:'5AOJ230'}
]
$scope.park=功能(汽车){
$scope.cars.push(角度复制(car));
控制台日志(角度副本(汽车));
删除$scope.car;
}
}]);
[Packt]停车场
盘子
{{car.plate}
公园
汽车牌照
从输入框检索到停车(汽车)
功能$scope.cars.push(angular.copy(car))的原因是什么代码>它到底为我们做了什么
delete$scope.car代码>
Angular正在为您在名为
car
的范围内自动创建一个属性,并使用文本输入填充car
的plate
属性
然后,代码将创建该对象的“深度副本”以推入数组angular.copy
创建对象的“深度副本”,而不是将对该对象的引用推入数组。阅读更多:
删除$scope.car对象只是从$scope中删除该属性的一种快速方法,因此,如果用户键入新的车牌号,angular将重新创建该属性。在所示示例中,您确实不需要使用angular.copy
car.plate
声明为文本框的ng model
时,会自动在范围上为您创建一个car对象[ngRepeat:dupes]在
不允许使用中继器。使用“跟踪方式”表达式指定唯一
键。
错误,然后可以通过跟踪解决。有效地
每次通过时,使用angular.copy
创建一个新的汽车对象
进入阵列它不在ng repeat内…ng repeat内的车辆位于ng repeat范围内only@link64我的错,没有正确地看小提琴,更正了我的答案。如果你删除了
car
属性,那么就没有必要创建副本。因此,您的答案没有完全涵盖问题2:原因是什么?他需要创建一个副本以存储在$scope.cars数组中。