2014-11-23 101 views
0

我使用cordovaionic作为我的移动应用程序。从功能更改外部变量

我试图用$http.get()用于加载JSON web服务,所以我写了这个代码:

.controller('loading', function ($scope, $state, $http) { 
     var loadedService = { 
       news: false, 
       users: false 
      }; 

     $http.get('http://{url}/users') 
      .success(function (result) { 
       loadedService.users = result; 
      }); 

我想将loadedService.users从web服务改为返回result

但是,当我试图console.log(loadedService.users)我会得到false(此变量的默认值)。

我该怎么办?

+0

在任何方法之外定义'var loadedService'。 – 2014-11-23 18:21:56

+0

@DawsonLoudon感谢您的评论,但我无法理解您的意思,我在'$ http'之外定义'loadedService' – MajAfy 2014-11-24 08:21:29

回答

0

$ http.get,或一般的javascript是异步的。把console.log放在http.get的成功回调中,你会看到(希望),你会得到正确的结果。但是如果在get调用之后放置console.log,您将看到错误输出,因为您的get调用仍然很忙,但是您的js仍在运行。长话短说,js是异步的。