Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var events = {
- load: {
- isPending: false,
- error: false,
- loaded: false
- }
- };
- this.load = function(force) {
- force = force || false;
- var dfd = $q.defer();
- var watchId = $rootScope.$watch(function() {
- return events.load.isPending;
- },function(newVal, oldVal) {
- if(newVal !== oldVal) {
- if(events.load.loaded) {
- dfd.resolve(someModel);
- } else if(events.load.error) {
- dfd.reject(events.load.error);
- }
- if(events.load.loaded || events.load.error) {
- watchId();
- }
- }
- });
- if(events.load.loaded && !force) {
- events.load.isPending = false;
- } else if(!events.load.isPending || (events.load.loaded && force)) {
- events.load.isPending = true;
- someResource.load(function (data) {
- someModel = data;
- events.load.loaded = true;
- }, function (why) {
- events.load.error = why;
- }).$promise.finally(function () {
- events.load.isPending = false;
- });
- }
- return dfd.promise;
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement