From 10cc1a42c925749f88433546d41d35ba07a88e6f Mon Sep 17 00:00:00 2001 From: Lucas Galfasó Date: Mon, 12 Aug 2013 10:53:31 -0300 Subject: fix($scope): $evalAsync executes on the right scope Executes $evalAsync at the scope that the call was made Closes: #3548 --- src/ng/rootScope.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/ng/rootScope.js') diff --git a/src/ng/rootScope.js b/src/ng/rootScope.js index 8f9be5e6..32142b38 100644 --- a/src/ng/rootScope.js +++ b/src/ng/rootScope.js @@ -501,7 +501,7 @@ function $RootScopeProvider(){ dirty, ttl = TTL, next, current, target = this, watchLog = [], - logIdx, logMsg; + logIdx, logMsg, asyncTask; beginPhase('$digest'); @@ -511,7 +511,8 @@ function $RootScopeProvider(){ while(asyncQueue.length) { try { - current.$eval(asyncQueue.shift()); + asyncTask = asyncQueue.shift(); + asyncTask.scope.$eval(asyncTask.expression); } catch (e) { $exceptionHandler(e); } @@ -704,7 +705,7 @@ function $RootScopeProvider(){ }); } - this.$$asyncQueue.push(expr); + this.$$asyncQueue.push({scope: this, expression: expr}); }, $$postDigest : function(fn) { -- cgit v1.2.3