2016-11-25 4 views
-1

Я пытаюсь вставить похожие объекты в массив, и в каждом объекте я нажимаю некоторые значения, но обновленные значения отражают все объекты. Я хочу добавить только три значения из массива foo в 1-й объект и другие 3 в foo второго объекта, но в обоих объектах появляются все шесть значений.Динамическое добавление похожих объектов

<!DOCTYPE html> 
<html ng-app="myApp" ng-controller='myCtrl'> 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
<script> 
myapp=angular.module('myApp',[]).controller('myCtrl',function($scope){ 
    $scope.inp=[]; 
    var a={foo:[]}; 
    var barcode='one_two_three_four_five_six'; 
    var arr=barcode.split('_'),k=-1; 
    for(i=0; i < arr.length; i++){ 
     if(i%3 == 0){ 
      $scope.inp.push(a); 
      k++;} 
    $scope.inp[k].foo.push(arr[i]); 
    } 
}); 
</script> 
<body> 
<div ng-repeat='x in inp track by $index'>{{(x)}}</div> 
</body> 
</html> 

ответ

0

иметь временный переменный массив для хранения 3 значения и нажать это значение Foo массива

var temp=[]; 
for(i=0;i<arr.length;i++){ 
    temp[i%3]=arr[i]; 
    if((i+1)%3==0){ 
     foo.push(temp); 
     temp=[]; 
     k++; 
    } 
} 
Смежные вопросы