0

コールの前に定義された変数ttestを定義しました。その後、私はこの変数にデータを割り当てます。 httpコールがnull値を受け取った後の変数anglejs

ttest[0]$http関数内で値を持っていますが、外にあなたが作っているHTTPリクエストは、それが非ブロッキングであることを意味し、非同期である

angular.module('MyApp',['ngMaterial', 'ngMessages', 'material.svgAssetsCache']) 
    .controller('AppCtrl', function($scope,$http,$log) { 
    var imagePath = 'img/list/60.jpeg'; 

    var ttest=[]; 
var url = "https://www.w3schools.com/angular/customers.php"; 

$http.get(url).then(function(response) { 
     ttest = response.data; 
    $scope.messages =ttest 
    $log.info(ttest[0]); 

    }); 

    $log.info(ttest[0]); 


    }); 
+0

レスポンスには何が含まれますか? –

+0

'$ http'が非同期であるため – mehulmpt

+0

スコープの変数として' ttest'を作成しようとしました –

答えて

0

が可能な値はありません。したがって、リクエストが送信される前に、その下のコードが実行されます。

angular.module('MyApp',['ngMaterial', 'ngMessages', 'material.svgAssetsCache']) 
    .controller('AppCtrl', function($scope,$http,$log) { 
    var imagePath = 'img/list/60.jpeg'; 

    var ttest=[]; 
var url = "https://www.w3schools.com/angular/customers.php"; 

$http.get(url).then(function(response) { 
     ttest = response.data; 
    $scope.messages =ttest 
    $log.info(ttest[0]); 

$scope.yourCallback(); // do whatever you want to do here in this function 

    }); 

    }); 
0

変数のjavascriptスコープは機能しています。 thenはコールバック機能なので、ttestはスコープ外では使用できません。

ttest変数を更新するスコープ外の関数を作成し、thenコールバック関数から呼び出すことができます。

0
//Check the below comment ,you will find out what are you doing wrong 
angular.module('MyApp',['ngMaterial', 'ngMessages', 'material.svgAssetsCache']) 
    .controller('AppCtrl', function($scope,$http,$log) { 
    var imagePath = 'img/list/60.jpeg'; 

    var ttest=[]; 
var url = "https://www.w3schools.com/angular/customers.php"; 

$http.get(url).then(function(response) { 
    //  ttest = response.data; 
     ttest = response.records; <-- change data to records 
    $scope.messages =ttest 
    $log.info(ttest[0]); 

    }); 

    $log.info(ttest[0]); 


    }); 
関連する問題