我正在尝试将两个不同范围对象的值合并为一个。
$scope.a={
name: A;
}
$scope=b{
age:12;
}
$scope.x=angular.copy($scope.a,$scope.b);
或
$scope.x=angular.extend($scope.a,$scope.b);
或
$scope.x=angular.merge($scope.a,$scope.b);
这不起作用。我得到的只是分配给$scope.a
$scope.x
的值
答案 0 :(得分:0)
var app = angular.module("app",[]);
app.controller("MyCtrl" , function($scope){
$scope.x = {a:"",b:""};
$scope.copy = function(a,b){
$scope.x.a = angular.copy(a);
$scope.x.b = angular.copy(b);
}
});

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="MyCtrl">
<form >
<input type="text" ng-model="a">
<input type="text" ng-model="b">
<input type="button" ng-click="copy(a,b)" value="copy">
</form>
<pre>{{ x | json}}</pre>
</div>
&#13;
你应该改变你的$scope.x
对象。喜欢这个。
$scope.x = {
a:"",
b:""
}
然后使用角度复制
$scope.x.a = angular.copy($scope.a);
$scope.x.b = angular.copy($scope.b);
答案 1 :(得分:0)
最后我明白了。我像这样使用了angular.merge
,
$scope.a = angular.merge($scope.b);
这是有效的