AngularJS circular dependency -


i'm making logger service, extend angular's $log service, saving errors (or debug if enabled) indexeddb database. here's code:

angular.module('applogger', ['appdatabase'])  .service('logservices', function($log, database) {      // ...      this.log = function(type, message, details) {         var log = {};         log.type = type         log.context = this.context;         log.message = message;         log.datetime = moment().format('yyyy-mm-dd hh:mm:ss');         log.details = details || '';         $log[type.tolowercase()](log);          if (type === 'error' || this.logdebug) {             database.logsave(log);         }     };      // ... }) 

this working in services intended. problem can't use logger inside database service, because throws circular dependency error. understand problem have no clue how should resolve it... how should around ?

thanks helping :-)

the reason angular complaining circular dependency that...well there one.
dangerous path go down, if know doing (famous last words) there solution circumvent that:

.service('logservices', function($log, $injector) {      // ...      var database;   // initialize later      this.log = function(type, message, details) {         /* before using database first time          * need inject */         if (!database) { database = $injector.get('database'); }          var log = {};         log.type = type         log.context = this.context;         log.message = message;         log.datetime = moment().format('yyyy-mm-dd hh:mm:ss');         log.details = details || '';         $log[type.tolowercase()](log);          if (type === 'error' || this.logdebug) {             database.logsave(log);         }     };      // ... }) 

see, also, short demo.


Comments

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

javascript - jQuery show full size image on click -