AngularJS - 循环遍历几个 json 对象数组

AngularJS - Loop through several json object arrays

我想通过一次 ng-click 遍历多个 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;
        }
    }
})();

您的问题 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;
     }

当您单击任何 link next() 和 change() 时,这些函数将被触发。

下一个函数将 nbr 的值从 0 更改为 1。

更改函数根据索引传递和 nbr 值更新替补 属性。

如果您点击 link 它将传递索引 0 或 1(基于点击的第一个和第二个 link),更改函数将仅更新此索引访问的对象 $scope.data.data[dataId]

现在的问题是数组针对单个对象进行了更新,但是 link.

的 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;
       }
     }

笨蛋:https://plnkr.co/edit/fGtpjmbrY5bcmC8VgF5R?p=preview