我正在使用一个简单的应用程序,使用parse作为服务,并使用角度为ui。
我在发出任何解析请求时会注意到某些原因,请求会多次触发。 (始终如一,3)
//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有任何问题?
由于
答案 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;
});