2016-07-22 53 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

正是我在找的东西 - 非常感谢 –