2016-07-22 54 views
0

我想通過一個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

,你可以在你想達到什麼更精確? – 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; 
    } 

當你點擊任何鏈接next()和change()時,這些函數被觸發。

下一個函數基於索引通行證和NBR NBR值的值從0變更爲1。

改變功能更新板凳屬性。

如果點擊一個鏈接它會通過索引0或1(基於點擊的第一和第二鏈路),改變功能將只更新其通過該索引訪問的對象$ scope.data.data [DATAID]

現在的問題是,陣列更新爲單個對象,但nbr值更改爲鏈接。

由於在其他索引處沒有其他對象的工作臺屬性,因此它將顯示空白。

使用下面的代碼來得到它的權利

$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:https://plnkr.co/edit/fGtpjmbrY5bcmC8VgF5R?p=preview

+0

正是我在找的東西 - 非常感謝 –