-1

JSON形式で取得した要素を $scope.array として配列に追加する必要があります 私のコードは次のとおりです。

$scope.sections=function(){
    $scope.array=[];

    $http.get("/app/query/?mod=find&type=all").success(function(data){

        $.each(data, function(i, row){
            $scope.array.push('aaa');
            console.log(row);
        });


    });
    return $scope.array;
}
console.log($scope.sections());

しかし、この関数は空の配列を返しました。要素を に追加するにはどうすればよい$scope.arrayですか?

この文字列はデータをコンソールに正しく追加しますがconsole.log(row);、機能し$scope.array.pushません

4

2 に答える 2

3

$httpサーバーからデータを取得するのに時間がかかるため、非同期の場合は空の配列が返されます。そのため、console.log(row)データが正しく返されます。

$scope.$apply()また、新しいデータをスコープに適用するために呼び出す必要があります。

 $scope.sections=function(callback){
  $scope.array=[];

  $http.get("/app/query/?mod=find&type=all").success(function(data){
       var temp = [];
       $.each(data, function(i, row){
          temp.push('aaa');
          console.log(row);
       });

       $scope.$apply(function () {
          $scope.array = temp;
       });        

       callback($scope.array);
   });
 }

 $scope.sections(function(result) { console.log(result); });
于 2013-10-18T14:33:28.443 に答える