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 --- test/ng/rootScopeSpec.js | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'test/ng/rootScopeSpec.js') diff --git a/test/ng/rootScopeSpec.js b/test/ng/rootScopeSpec.js index a23db81a..e8bf8eed 100644 --- a/test/ng/rootScopeSpec.js +++ b/test/ng/rootScopeSpec.js @@ -766,6 +766,17 @@ describe('Scope', function() { expect($rootScope.log).toBe('12'); })); + it('should run async expressions in their proper context', inject(function ($rootScope) { + var child = $rootScope.$new(); + $rootScope.ctx = 'root context'; + $rootScope.log = ''; + child.ctx = 'child context'; + child.log = ''; + child.$evalAsync('log=ctx'); + $rootScope.$digest(); + expect($rootScope.log).toBe(''); + expect(child.log).toBe('child context'); + })); it('should operate only with a single queue across all child and isolate scopes', inject(function($rootScope) { var childScope = $rootScope.$new(); @@ -777,7 +788,10 @@ describe('Scope', function() { expect(childScope.$$asyncQueue).toBe($rootScope.$$asyncQueue); expect(isolateScope.$$asyncQueue).toBe($rootScope.$$asyncQueue); - expect($rootScope.$$asyncQueue).toEqual(['rootExpression', 'childExpression', 'isolateExpression']); + expect($rootScope.$$asyncQueue).toEqual([ + {scope: $rootScope, expression: 'rootExpression'}, + {scope: childScope, expression: 'childExpression'}, + {scope: isolateScope, expression: 'isolateExpression'}]); })); -- cgit v1.2.3