0

これが私のコードです。コールバック関数内で for ループの値を取得する方法。コールバック内の gradableGBItems[i].Title にアクセスする必要があります

for(var i=0; i < gradableGBItems.length ; i++)
        {
            //console.log(gradableGBItems[i].isGradable);
            //console.log(gradableGBItems[i].id);
            var resultItem='';

            Title=gradableGBItems[i].title;
            //console.log(Title);
            //console.log(gradableGBItems[i].id);
             gradeBookbRestService.loadGradeBookItemByItemId(token, gradableGBItems[i].id,   function(resultItem) {

                   //Console.log();  //Need to access value

                    if(resultItem.grade != null || resultItem.grade != undefined)
                     {
                         //console.log(resultItem.points);
                        jsonObj.push({id:resultItem.grade.id, comments:resultItem.grade.comments, isVisible:resultItem.grade.isVisible, letterGrade:resultItem.grade.letterGrade,  points: resultItem.grade.points, title: Title } ); 


                        console.log(jsonObj);
                     }


            });





        }
4

1 に答える 1

0

オブジェクトは匿名コールバックの範囲外です。これに対処する 1 つの考えられる方法は、コールバック関数を作成して渡すことです。

var gradeBookItemCallback = function(gradeableItemTitle, next){
  return function(resultItem){
    //do something with gradeableItemTitle and/or resultItem.
    next(); //call the callback.  You could pass whatever you wanted to here as well. 
  }
});

次のように使用されます。

gradeBookbRestService.loadGradeBookItemByItemId(token, gradableGBItems[i].id, gradeBookItemCallback(Title, callbackFunctionHere));
于 2013-02-23T17:57:06.590 に答える