2016-05-17 69 views

回答

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>

你应该改变上你的$scope.x对象的$scope.a值。喜欢这个。

$scope.x = { 
      a:"", 
      b:"" 
      } 

然后用角副本

$scope.x.a = angular.copy($scope.a); 
$scope.x.b = angular.copy($scope.b); 
+0

对不起人Tryed它。但它没有奏效。仍然数据不会传递给'$ scope.x'我认为它是因为'$ scope.b'有3个属性。虽然我不确定。谢谢回复。 –

+0

你的问题含糊不清。我认为你想将$ scope.a和b传递给其他变量,比如x。 –

+0

是的,这是正确的。我想这样做。但是,当我尝试它时,上面的代码不起作用。对不起 –

0

最后我得到了它。我用angular.merge这样,

$scope.a = angular.merge($scope.b);

这个作品

+0

这将'b'分配给'a'。 – zeroflagL

+0

它为我工作。我将'$ scope.a'和'$ scope.b'中的所有值都设置为'$ scope.a',可能是 –

+0

,但这不是代码的作用。 – zeroflagL