Skip to content

Instantly share code, notes, and snippets.

@ericclemmons
Last active December 15, 2015 05:19
Show Gist options
  • Save ericclemmons/5208452 to your computer and use it in GitHub Desktop.
Save ericclemmons/5208452 to your computer and use it in GitHub Desktop.
AngularJS Deferred $http
angular
.module('app.controllers.project', [
'app.models.project'
])
.controller('app.controllers.project', [
'$routeParams',
'$scope',
'project',
function($params, $scope, project) {
$scope.project = project;
}
])
;
angular
.module('app.models.project', [
'app.models.todoLists'
])
.factory('app.models.project', [
'$q',
'$http',
'app.models.todoLists',
function($q, $http, TodoLists) {
var Project = function(properties) {
angular.extend(this, properties);
};
var data;
var deferred;
Project.prototype.todoLists = function() {
if (!deferred) {
deferred = $q.defer();
$http
.get('/api/projects/' + this.id + '/todolists')
.then(function(response) {
return response.data;
})
.then(function(lists) {
data = lists;
deferred.resolve(data);
})
;
} else if (data) {
deferred.resolve(data);
}
return deferred.promise;
};
return Project;
}
])
;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment