diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/Browser.js | 17 | ||||
| -rw-r--r-- | src/services.js | 7 |
2 files changed, 19 insertions, 5 deletions
diff --git a/src/Browser.js b/src/Browser.js index c7e61e97..e3c768ca 100644 --- a/src/Browser.js +++ b/src/Browser.js @@ -79,8 +79,21 @@ function Browser(location, document, head, XHR, $log) { foreach(pollFns, function(pollFn){ pollFn(); }); } self.poll = poll; - self.addPollFn = bind(pollFns, push); - self.startPoller = function(interval, setTimeout){ + + /** + * Adds a function to the list of functions that poller periodically executes + * @return {Function} the added function + */ + self.addPollFn = function(/**Function*/fn){ + pollFns.push(fn); + return fn; + }; + + /** + * Configures the poller to run in the specified intervals, using the specified setTimeout fn and + * kicks it off. + */ + self.startPoller = function(/**number*/interval, /**Function*/setTimeout){ (function check(){ poll(); setTimeout(check, interval); diff --git a/src/services.js b/src/services.js index ddeebe1f..56637573 100644 --- a/src/services.js +++ b/src/services.js @@ -409,16 +409,17 @@ angularService('$cookies', function($browser) { rootScope = this, lastCookies; - $browser.addPollFn(function(){ + //creates a poller fn that copies all cookies from the $browser to service & inits the service + $browser.addPollFn(function() { var currentCookies = $browser.cookies(); if (lastCookies != currentCookies) { lastCookies = currentCookies; copy(currentCookies, cookies); rootScope.$eval(); } - }); + })(); - this.$onEval(PRIORITY_FIRST, update); + //at the end of each eval, push cookies this.$onEval(PRIORITY_LAST, update); return cookies; |
