Skip to content

Instantly share code, notes, and snippets.


ryardley/element-registry-basic.js Secret

Last active Aug 29, 2015
What would you like to do?
.directive('elem', function(ElementRegistry) {
return {
restrict: 'A',
scope: false,
link:function(scope, element, attrs){
// store this element with reference to the parent scope
new ElementRegistry(scope).add(attrs.elem, element);
.factory('ElementRegistry', function () {
// scope id to store on the class
var id;
function ElementRegistry(scope){
// initialize class stores if they are undefined
id = scope.$id; = || {};[id] =[id] || {};
// get a key from the store
function findByKey(key){
return[id][key] ?[id][key] : false;
ElementRegistry.prototype = {
// return the found value otherwise run a callback once found
find: function(key, callback){
return findByKey(key);
// add an element to the scope store
add: function(key, value){[id][key] = value;
// return the storage object
store: function(){
return ElementRegistry;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment