2014-09-26 64 views
0

什麼是在角向一個值綁定到值的陣列的最簡單的方法,使所有數組項得到相同的值例如當它改變時的輸入。到陣列結合到一個值角最簡單的方法

<script> 
    var myArray= [1,1,1]; 
</script> 

<input ng-model="myArray" type="text" /> 
+0

你有一個特定用例的這個?多次存儲相同的數據似乎效率很低 - 也許有更好的方法來解決您的問題? – 2014-09-26 08:38:08

+0

這個數組是固定長度的還是動態的? – 2014-09-26 08:42:03

+0

它是動態的。萊昂已經回答了。謝謝 – daniel 2014-09-26 08:45:21

回答

2

可以使用ngChange指令調用函數的新值綁定到所有元素:

angular.module('changeExample', []) 
 
    .controller('ExampleController', ['$scope', 
 
    function($scope) { 
 
     $scope.valueToCopy = ''; 
 
     $scope.values = values = [1, 1, 1, 3, 6]; 
 
     $scope.change = function() { 
 
     for (var i = values.length - 1; i >= 0; i--) { 
 
      values[i] = $scope.valueToCopy; 
 
     } 
 
     console.log(values); 
 
     }; 
 
    } 
 
    ]);
<div ng-app="changeExample" ng-controller="ExampleController"> 
 
    Copy this: 
 
    <input ng-model="valueToCopy" ng-change="change()" /> 
 

 
    <ul> 
 
    <li ng-repeat="value in values track by $index">Element at {{$index}} = {{value}}</li> 
 
    </ul> 
 
</div> 
 

 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

0

可以$watch輸入變量的值,然後更新數組,像這樣:

app.controller('MainCtrl', function($scope) { 
    $scope.myArray = []; 

    $scope.$watch('arrayValue', function(val){ 
    $scope.myArray = [val,val,val]; 
    }) 
}); 
------------------------------------------ 
<input type="text" ng-model="arrayValue"> 
{{ myArray }} 
相關問題