angularjs和Parse.com服务 - 解雇多个请求?

时间:2015-07-06 16:52:24

标签: angularjs parse-platform

我正在使用一个简单的应用程序,使用parse作为服务,并使用角度为ui。

我在发出任何解析请求时会注意到某些原因,请求会多次触发。 (始终如一,3)

enter image description here

  //controller
     app.controller('adminCtrl', function($scope, $location, healthTrackerFactory){   
      healthTrackerFactory.getUsers().success(function(success) {
        console.log(success)
           $scope.user = success.results;
      }).error(function() {

      });
    });



   //Factory
    healthTracker.factory('healthTrackerFactory', [ '$http', function($http){

      var urlBase = 'https://api.parse.com';
      var healthTrackerFactory = {};

  healthTrackerFactory.getUsers = function(){
    return $http({
      method: 'GET',
      url: urlBase + '/1/users',
      headers:  {'X-Parse-Application-Id':'APPID', 'X-Parse-REST-API-Key':'APIKEY', 'Content-type' : 'application/json'}
    })
  }
 return healthTrackerFactory;               
 }]);

当我在没有角度的情况下进行测试时,服务正常工作,但我在这个项目中使用角度。

有没有人像这样使用Parse和Angular有任何问题?

由于

1 个答案:

答案 0 :(得分:1)

我认为每次Angular摘要运行时,当前控制器都会刷新,将调用工厂移动到通过按钮单击调用的函数,如果必须在不被用户触发的情况下调用它并在控制器中使用,请移动它到$州过渡部分。

$stateProvider.state('admin', {
  templateUrl: 'path/to/admin/html/template.html',    
  controller: 'adminCtrl',
  resolve: {
    users: function(healthTrackerFactory){
      return healthTrackerFactory.getUsers()
          .then(function(response){
              return response.results;
          });
    }
  }
});

然后在你的控制器中:

app.controller('adminCtrl', function($scope, $location, users){
    $scope.user = users;
});