Skip to content

Instantly share code, notes, and snippets.

@leongaban
Created May 11, 2015 22:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save leongaban/30b1b1bfa830fa5fb961 to your computer and use it in GitHub Desktop.
Save leongaban/30b1b1bfa830fa5fb961 to your computer and use it in GitHub Desktop.
scopeFactory
/*global angular*/
/* =============================================================================
Scope factory | stores and retrieves $scopes
============================================================================= */
(function() { "use strict";
var app = angular.module('scopeFactory', [])
.factory('ScopeFactory', function() {
// Init ScopeFactory:
// ------------------
var root = { that: this };
var notifications = { that: this };
var searchPopover = { that: this };
var tagsPanel = { that: this };
var tagsHover = { that: this };
var tagsFilter = { that: this };
var tickersPanel = { that: this };
var viewHeader = { that: this };
var chartHeader = { that: this };
var chartScope = { that: this };
var socialMedia = { that: this };
var saveScope = function(type, vs) {
switch(type) {
case 'root':
root.that = vs;
break;
case 'notifications':
notifications.that = vs;
break;
case 'search':
searchPopover.that = vs;
break;
case 'tagsPanel':
tagsPanel.that = vs;
break;
case 'tagsHover':
tagsHover.that = vs;
break;
case 'tagsFilter':
tagsFilter.that = vs;
break;
case 'tickersPanel':
tickersPanel.that = vs;
break;
case 'viewHeader':
viewHeader.that = vs;
break;
case 'chartHeader':
chartHeader.that = vs;
break;
case 'chart':
chartScope.that = vs;
break;
case 'social':
socialMedia.that = vs;
break;
}
};
var getScope = function(type) {
switch(type) {
case 'root':
return root.that;
break;
case 'notifications':
return notifications.that;
break;
case 'search':
return searchPopover.that;
break;
case 'tagsPanel':
return tagsPanel.that;
break;
case 'tagsHover':
return tagsHover.that;
break;
case 'tagsFilter':
return tagsFilter.that;
break;
case 'tickersPanel':
return tickersPanel.that;
break;
case 'viewHeader':
return viewHeader.that;
break;
case 'chartHeader':
return chartHeader.that;
break;
case 'chart':
return chartScope.that;
break;
case 'social':
return socialMedia.that;
break;
}
};
return {
saveScope : saveScope,
getScope : getScope
};
});
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment