在循环中创建 $scope

create $scope while loop

我不知道如何像在 javascipt 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]);
                    }

请帮忙,谢谢

我认为您想在范围内动态生成变量,因此请参阅下面的模板。您需要稍微修改一下代码。

有几件事要记住。

.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]]);
}