2016-04-02 2 views
0

Я новичок в angularjs и вам нужно руководствоваться лучшим подходом к моему проекту.
Большая часть моего кода работает, но я попал в некоторые проблемы, когда мой код не всегда работает должным образом.
Возможно, из-за некоторых условий гонки с веб-сервисами.
Поскольку веб-сервис полностью отделен от приложения angularjs, у меня нет способов предварительно посеять.Angularjs, RESTful API, предварительная загрузка нескольких сервисов

Я использую угловой 1,5 с ui.router для обработки маршрутизации и $ http для запросов.

  1. Когда я открываю страницу своих пользователей/пользователей/пользователей, я использую data-ng-init для создания $ http.get, а затем ng-repeat на таблице. Это работает, однако у меня есть этот небольшой промежуток, пока система извлекает данные.
  2. Когда я нажимаю кнопку сведений, я перенаправляю в/app/users /: userId. Однако мне нужно получить данные json данных на загрузке страницы из нескольких ресурсов здесь, и время от времени этот шаг не публикует данные. Кажется, что-то вроде состояния расы, так как я вижу, что данные возвращаются с помощью console.log при обратном вызове. Однако я не вижу ошибок на консоли.

Я пробовал несколько решений, не найдя действительно хороших. Поскольку я новичок в angularjs, я думаю, что пропустил что-то простое и нуждаюсь в толчке в правильном направлении.

Выборка производится, как это, так что довольно простые вещи .:

ApiService.whoami(). 
    then(
     function successCallback(response){ 
      $scope.user = response.data.data; 
      console.log(response); 

     }, 
     function errorCallback(response) { 
      SweetAlert.swal({ 
       title: "Data error", 
       text: response.data.error.message, 
       type: "warning", 
       confirmButtonColor: "#DD6B55", 
      }); 
     } 
    ); 

ответ

0

Вы можете попробовать использовать $ таймаут, чтобы задержать обратный вызов, чтобы дать ему время для извлечения данных

then(
    function successCallback(response){ 
    $timeout(function() { 
     $scope.user = response.data.data; 
     console.log(response); 
    }, 1000); 
    }, 

https://docs.angularjs.org/api/ng/service/ $ timeout

+0

Проблема, похоже, наоборот. Например. У меня есть поле выбора, которое использует select2. Если я загружаю свои данные в/users и сохраняю их в $ rootState, а затем переключается на страницу/users /: userID, это хорошо. Если я обновляюсь, а данные отсутствуют, когда страница отображает его, они не работают даже при извлечении данных. – cboxdk

+0

Можете ли вы показать код для ваших контроллеров и т. Д.? –

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

  • Нет связанных вопросов^_^