循环时创建$ scope

时间:2015-04-08 04:11:42

标签: angularjs variables for-loop angularjs-scope

我不知道如何在javascript var data + [i]中创建内部循环范围,我认为可能,并且我希望将一些数据推送到这样的范围

for (var i = 0; i < $scope.laporanDataKuisioner.contents.length; i++) {
                        for (var j = 0; j < $scope.laporanDataKuisioner.contents.length; j++) {
                            if ($scope.laporanDataKuisioner.contents[j].kode_tanya == $scope.laporanDataKuisioner.contents[i].kode_tanya) {
                                console.log(true);
                                $scope.data+[i].push({
                                    key: $scope.laporanDataKuisioner.contents[j].kode_jawab,
                                    y: $scope.laporanDataKuisioner.contents[j].jumlah
                                });
                            };
                        }
                        console.log($scope.data+[i]);
                    }

请帮忙,谢谢

1 个答案:

答案 0 :(得分:1)

我认为你想动态地在范围内生成变量,所以请看下面的模板。您需要稍微修改一下代码。

很少有事情要记住。

.push()是数组的功能。在这里,您尝试在范围中添加变量。

范围是json变量,因此.push()方法不起作用。

要在json中添加任何新属性,有两种方法,如评论中提到的@Chandermani。在这里,您可以将键作为字符串方法使用,以便您可以动态生成字符串,并可以将该字符串用作范围对象的属性名称。

检查以下模板并与您的

进行比较。

for (var i = 0; i < $scope.laporanDataKuisioner.contents.length; i++) {
    for (var j = 0; j < $scope.laporanDataKuisioner.contents.length; j++) {
        if ($scope.laporanDataKuisioner.contents[j].kode_tanya == $scope.laporanDataKuisioner.contents[i].kode_tanya) {
            console.log(true);
            $scope['data' + i] = {
                key: $scope.laporanDataKuisioner.contents[j].kode_jawab,
                y: $scope.laporanDataKuisioner.contents[j].jumlah
            };
        }
        ;
    }
    console.log($scope['data' + [i]]);
}