2014-11-23 5 views
0

Я использую cordova и ionic для моего мобильного приложения.Изменение внешних переменных по функции

Я пытаюсь использовать $http.get() для загрузки JSON веб-службы, поэтому я написал этот код:

.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 к возвращаемой result из WebService.

Но когда я пытаюсь установить console.log(loadedService.users), я получу false (значение по умолчанию для этой переменной).

Что мне делать?

+0

определить 'var loadedService' вне любого метода. –

+0

@DawsonLoudon Спасибо за комментарий, но я не понимаю вашего значения, я определил 'loadedService' вне' $ http' – MajAfy

ответ

0

$ http.get, или javascript вообще асинхронный. Поместите console.log в обратный вызов успеха http.get, вы увидите, что (надеюсь), вы получаете правильные результаты там. Но если вы поместите console.log после вызова get, вы увидите ложный вывод, так как ваш вызов будет по-прежнему занят, но ваш js продолжает работать. Короче говоря, js является асинхронным.

Смежные вопросы