2016-07-22 9 views
0

1回のng-clickで複数のjsonオブジェクト配列をループしたいと思います。AngularJS - 複数のjsonオブジェクト配列をループする

例 - 次Plunkerを参照してください。 https://plnkr.co/edit/7P4Oha5OdfTC5wndUebE?p=preview

私は私の青い数字(とにかくどの項目)の一つになりましたクリックすると、それはすべての項目については、次のいずれかに変更する必要があります。現時点では、他の項目は消えます。

最後に、すべてのアイテムは、クリックすると常に同じ数値値を持つ必要があります。

どうすればいいですか?ご協力いただきありがとうございます...あなたがオブジェクトのインデックスを使用して、データオブジェクトの配列を変更しようとしている

(function() { 
    'use strict'; 

    angular 
     .module('app', []) 
     .controller('myctrl', myctrl); 

    function myctrl($scope, $http) { 
     $http.get("data.json") 
      .success(function (data) { 
       $scope.data = data; 
       $scope.nbr = 0; 
      }); 

     $scope.next = function (dataId, nbr) { 
      $scope.nbr = ($scope.nbr + 1) % $scope.data.data[dataId].numbers.length; 
     }; 

     $scope.change = function (dataId, nbr) { 
      $scope.data.data[dataId].numbers[nbr].bench = $scope.data.data[dataId].numbers[nbr].number1 + 
       $scope.data.data[dataId].numbers[nbr].number2 + 
       $scope.data.data[dataId].numbers[nbr].number3; 
     } 
    } 
})(); 
+0

あなたが達成したいものに、より正確にすることができます右

$scope.change = function(dataId, nbr) { for(var i = 0; i < $scope.data.data.length; i ++) { $scope.data.data[i].numbers[nbr].bench = $scope.data.data[i].numbers[nbr].number1 + $scope.data.data[i].numbers[nbr].number2 + $scope.data.data[i].numbers[nbr].number3; } } 

Plunkerそれを取得するためのコードの下

使用? – Rachmaninoff

+0

ここで達成したいものが実際にはっきりしない –

+0

アイテムの青い数字をクリックすると、数値オブジェクトは配列内のすべてのアイテムの次のオブジェクトに移動する必要があります...現時点では、オブジェクトを変更するだけですクリックするともう一方は消えます。だから私の例では、各項目は、あなたがそれをクリックすると、常に同じ番号を持つ必要があります... –

答えて

0

あなたの問題のID。

$scope.change = function(dataId, nbr) { 

     $scope.data.data[dataId].numbers[nbr].bench =  $scope.data.data[dataId].numbers[nbr].number1 + 
                  $scope.data.data[dataId].numbers[nbr].number2 + 
                  $scope.data.data[dataId].numbers[nbr].number3; 
    } 

いずれかのリンク()およびchange()をクリックすると、これらの機能が起動されます。

次関数は、インデックスパスとNBR値に基づいて、ベンチプロパティを更新

0から1

に変更機能をNBRの値を変更します。

リンクをクリックすると、最初のリンクと2番目のリンクに基づいてインデックス0または1が渡されます。変更機能は、このインデックスによってアクセスされるオブジェクトのみを更新します。$ scope.data.data [dataId]

ここで問題は、配列が単一のオブジェクトに対して更新されますが、両方のリンクでnbrの値が変更されることです。

他のオブジェクトのベンチプロパティが他のインデックスにないため、空白が表示されます。 https://plnkr.co/edit/fGtpjmbrY5bcmC8VgF5R?p=preview

+0

まさに私が探していた - ありがとう –

関連する問題