angularjs循环问题

时间:2014-04-22 15:18:38

标签: javascript angularjs

我正在尝试调用名为chercherProfil的服务并将其结果存入javascript数组$ scope.tagsByProfils,但是当我尝试访问它时,控制台将数组显示为未定义

这是一段代码剪辑,可以帮助您找出问题所在:

    $http.post(configuration.URL_REQUEST + '/chercherProfil', toSendCherche)
            .success(function(data) {
                console.log(data);
                $scope.profil = data;
                $http.post(configuration.URL_REQUEST + '/chercherTagsParProfil', {
                    idProfil: $scope.target
                }).success(function(data) {
                    $scope.tagsByProfils = data;
                    console.log(data);
                    $scope.tests = [];
                    console.log($scope.tagsByProfils[0].tag);
                    for (var p = 0; p < $scope.tagsByProfils.length; p++) {
                        $http.post(configuration.URL_REQUEST + '/getTagById', {
                            idTag: $scope.tagsByProfils[p].tag
                        }).success(function(data) {
                            $scope.resultFlag = data;
                            if ($scope.resultFlag.libelle.toUpperCase().match('^TITRE')) {
                                console.log($scope.tagsByProfils[p]);
                                $scope.tests[p] = '<p class="text-center" data-font="' + $scope.tagsByProfils[p].police + '" data-size="' + $scope.tagsByProfils[p].taille + '" data-lineheight="' + $scope.tagsByProfils[p].interligne + '" data-weight="' + $scope.tagsByProfils[p].interligne + '" data-coloration="' + $scope.tagsByProfils[p].coloration + '">' + $scope.resultFlag.libelle + ' : Ceci est un exemple de' + $scope.resultFlag.libelle + ' </p>';
                            } else {
                                $scope.tests[p] = '<p class="text-center" data-font="' + $scope.tagsByProfils[p].police + '" data-size="' + $scope.tagsByProfils[p].taille + '" data-lineheight="' + $scope.tagsByProfils[p].interligne + '" data-weight="' + $scope.tagsByProfils[p].interligne + '" data-coloration="' + $scope.tagsByProfils[p].coloration + '">' + $scope.resultFlag.libelle + ' : CnedAdapt est une application qui permet d\'adapter les documents. </p>';
                            }


                        });
                    };
});

欢迎任何想法或反馈

1 个答案:

答案 0 :(得分:0)

不确定它是否能彻底解决您的问题,但请考虑保护您的for循环计数器,因为您正在以封闭方式使用它:

for (var p = 0; p < $scope.tagsByProfils.length; p++) {
   (function(p){
       $http.post(configuration.URL_REQUEST + '/getTagById', {
                        idTag: $scope.tagsByProfils[p].tag
       [...]

    })(p)