2015-03-18 1 views
0

Я делаю запрос GET для извлечения сообщений, но когда я загружаю страницу, он делает первый запрос с правильным запросом page в URL-адресе запроса, а затем немедленно делает другой запрос с page набор к 1. Вот вывод на консоль, когда я сделать запрос на page=3:.Http-вызов выполняется дважды с сбросом параметров

"page: 3" 
bolt.js:54 Object {method: "GET", url: "http://localhost/api/v1/content/news?order=datepublish%20DESC&limit=10&page=3", headers: Object} 
bolt.js:54 Object {method: "GET", url: "http://localhost/api/v1/content/news?order=datepublish%20DESC&limit=10&page=1", headers: Object} 
bolt.js:58 "success function called." 
posts.controller.js:35 Object {data: Object, status: 200, headers: function, config: Object, statusText: "OK"} 
bolt.js:58 "success function called." 

Таким образом, вы можете видеть это явно делает два запроса GET, но возвращает только один набор данных (последний, с page=1

В моем posts.controller.js у меня есть:

activate(); 

function activate() { 

    $scope.isLoading = 1; 
    $scope.previousLink = 0; 

    return getPosts($stateParams.page).then(function(data) { 
     $scope.isLoading = 0; 
     $rootScope.pageLoading = 0; 
    }); 
} 

function getPosts(page) { 

    console.log("page: " + page); 

    var contenttype = 'news'; 
    var order = 'datepublish%20DESC'; 
    var limit = 10; 

    return Bolt.getRecords(contenttype, order, limit, page) 
     .then(function(data){ 

      // Below is line 35 
      console.log(data); 
      $scope.posts = data.data.data; 

     }); 
} 

И Bolt сервис (bolt.js):

function getRecords(contenttype, order, limit, page) { 

    var request = { 
     method: 'GET', 
     url: API_BASE_URL + 'content/' + contenttype + 
        '?order=' + order + 
        '&limit=' + limit + 
        '&page=' + page, 
     headers: { 
      'Content-Type':  'application/json', 
      'Accept':   'application/json' 
     } 
    }; 

    // Below is line 54 
    console.log(request); 

    return $http(request) 
     .success(function(data){ 

      // Below is line 58 
      console.log("success function called.");       
      return data; 
     }) 
     .error(function(error){ 
      return error; 
     }); 
} 

Что я здесь делаю неправильно?

+0

Похоже, что что-то еще вызывает функцию 'getRecords'. Может быть, какой-то код отладки? Вы пытались помещать точку останова отладчика в 'getRecords', чтобы вы могли видеть, что трассировка стека каждый раз, когда она вызывается? – JLRishe

+0

Вы уверены, что первый запрос не является предлогом междоменного запроса AJAX? – Aetherus

ответ

1

Иногда возникают асинхронные вызовы функций, выполненные в часах, которые выполняются через цикл дайджеста.

Проверьте, если вы используете функцию getRecords или getPosts в любом месте в вашем коде. Возможно, это связано с просмотром некоторой переменной, связанной с вашим параметром pages.

Удачи.

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

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