如何将两个不同范围对象中的值添加到angularjs中的单个范围对象

时间:2016-05-17 03:36:14

标签: angularjs

我正在尝试将两个不同范围对象的值合并为一个。

$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的值

2 个答案:

答案 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;
&#13;
&#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);

这是有效的