2017-04-12 6 views
1

i番目の要素rom $ httprequestにアクセスしようとしていますが、このメソッドを記述してアラート関数が表示されているかどうかを確認しようとしていますウィンドウの警告のスコープの要素は、"変数UNDEFINED"、なぜですか?jsonファイル内のi番目の要素からのアクセスanglejsのhttprequest

ありがとうございます。

angular.module('userListApp', []) 
    .factory('userService', function ($http) {; 
     var users = []; 
      return { 
      users: users, 
      load: function() {; 
      $http 
      .get('http://localhost:8080/users') 
      .success(function (data) {; 
       users.push.apply(users, data); 
      }); 
      } 
     }; 
    }) 
    .controller('UsersController', function ($scope, userService) {; 
     $scope.users = userService.users; 
     userService.load(); 
    userService.toString();; 

     alert($scope.users[0]); 

答えて

0

userService.loadは非同期なので、応答がまだ戻ってこなかったので、users[0]はありません。約束を解決するには、ユーザーを見たり、負荷をかけて$qを使ったりすることができます。このようなもの:

angular.module('userListApp', []) 
.factory('userService', function ($http) {; 
    var users = []; 
    return { 
     users: users, 
     load: function() { 
     var deferred = $q.defer(); 
     $http 
     .get('http://localhost:8080/users') 
     .success(function(data) { 
      users.push.apply(users, data); 
      deferred.resolve(); 
     }); 
     return deferred.promise; 
     } 
    }; 
}) 
.controller('UsersController', function ($scope, userService) {; 
    $scope.users = userService.users; 
    userService.load().then(function() { 
    alert($scope.users[0]); 
    }); 
}); 
+0

申し訳ありませんが、もし私が私のコールhttprequestから一人のエレメンを奪いたければ、私は何を書いていますか?つまり、httprequest/jsonから要素を抽出するいくつかの関数がないのですか? – alb084

+0

私は解決しました....私はちょうど '$ scope.Object [k] .NameColumnJsonFile'でした。 とにかくありがとう。 ^^ – alb084

-1

$http.get非同期あり、そして約束を返すため。 いつものように、あなただけの可能性があります:

userService.load().then(function() { 
    alert($scope.users[0]); // Here, the load function will be over. 
}); 

は約束で、特に一部、documentationを読むことを忘れないでください。

+0

なぜdownvoteですか? – SinDeus

関連する問題