Angularjs 另一个无限的$digest循环

Angularjs 另一个无限的$digest循环,angularjs,angularjs-ng-repeat,Angularjs,Angularjs Ng Repeat,在视图中的循环中执行循环: <tr ng-repeat="result in results"> <td> <span ng-repeat="device in helpers.getIosDevices(result.ios_device)"> {{ device.code }} </span> </td> </tr> 助手: var CRM = C

在视图中的循环中执行循环:

<tr ng-repeat="result in results">
    <td>
        <span ng-repeat="device in helpers.getIosDevices(result.ios_device)">
            {{ device.code }}
        </span>
    </td>
</tr>
助手:

var CRM = CRM || {};

CRM.helpers = {
    // Handle "111" value format
    getIosDevices: function (devices) {
        var obj = [];

        if (devices !== null && devices !== undefined) {
            if (devices.charAt(0) === '1') {
                obj.push({
                    code: 'ipod',
                    name: 'iPod',
                });
            }
            if (devices.charAt(1) === '1') {
                obj.push({
                    code: 'ipad',
                    name: 'iPad',
                });
            }
            if (devices.charAt(2) === '1') {
                obj.push({
                    code: 'iphone',
                    name: 'iPhone',
                });
            }
        }

        return obj;
    }
};
出现此错误:$rootScope/infdig?p0=10&p1=%5B%5B%22fn:%E2%80%A620%20%20%7D;%20newVal:%20未定义;%20oldVal:%20未定义的%22%5D%5D


据我所知,但我不知道如何解决我的问题。我应该使用什么解决方法?

此错误的原因是您试图在摘要循环期间更改
ng repeat
指令中的源代码列表

<span ng-repeat="device in helpers.getIosDevices(result.ios_device)">
                                     ^^^^^^^^
其中,
设备
表示地图


这是一些可能会帮助您的演示:

$scope.results = [{
        ios_device: "100"
    }, {
        ios_device: "010"
    }, {
        ios_device: "001"
    }];


    $scope.devices = {
        "100": [{
            code: 'ipod',
            name: 'iPod1',
        },
               {
            code: 'ipod',
            name: 'iPod2',
        }],
            "010": [{
            code: 'ipod',
            name: 'iPod1',
        },
               {
            code: 'ipad',
            name: 'iPad2',
        }],
            "001": [{
            code: 'ipod',
            name: 'iPod1',
        },
               {
            code: 'iphone',
            name: 'iphone2',
        }],
    }
HTML


{{device.code}

中演示,然后如何重写此文件以避免异常?在大多数情况下,创建的数组总是相同的。@sylouuu添加了一些演示
<tr ng-repeat="result in results">
    <td>
        <span ng-repeat="device in devices[result.ios_device]">
            {{ device.code }}
        </span>
    </td>
</tr>
$scope.results = [{
        ios_device: "100"
    }, {
        ios_device: "010"
    }, {
        ios_device: "001"
    }];


    $scope.devices = {
        "100": [{
            code: 'ipod',
            name: 'iPod1',
        },
               {
            code: 'ipod',
            name: 'iPod2',
        }],
            "010": [{
            code: 'ipod',
            name: 'iPod1',
        },
               {
            code: 'ipad',
            name: 'iPad2',
        }],
            "001": [{
            code: 'ipod',
            name: 'iPod1',
        },
               {
            code: 'iphone',
            name: 'iphone2',
        }],
    }
<table>
    <tr ng-repeat="result in results">
        <td><span ng-repeat="device in devices[result.ios_device]">
        {{ device.code }}
    </span>

        </td>
    </tr>
</table>