From 8d507df8c9664cc35467577971532cc20be2912f Mon Sep 17 00:00:00 2001 From: Igor Minar Date: Sun, 23 Jan 2011 22:24:53 -0800 Subject: Revert "$route should create child scope via $new" This reverts commit a5eb3ed107034cce5b7de3ec3f8a43ff3a379fa1. See 9ca2facb for reasoning. --- src/services.js | 2 +- src/widgets.js | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/services.js b/src/services.js index de65e30f..1a7b91ac 100644 --- a/src/services.js +++ b/src/services.js @@ -708,7 +708,7 @@ angularServiceInject('$route', function(location) { if (!childScope) { var pathParams = matcher(location.hashPath, route); if (pathParams) { - childScope = parentScope.$new(); + childScope = createScope(parentScope); $route.current = extend({}, routeParams, { scope: childScope, params: extend({}, location.hashSearch, pathParams) diff --git a/src/widgets.js b/src/widgets.js index 4585629a..c131b646 100644 --- a/src/widgets.js +++ b/src/widgets.js @@ -625,9 +625,20 @@ angularWidget('ng:include', function(element){ return extend(function(xhr, element){ var scope = this, childScope; var changeCounter = 0; + var preventRecursion = false; function incrementChange(){ changeCounter++;} this.$watch(srcExp, incrementChange); this.$watch(scopeExp, incrementChange); + scope.$onEval(function(){ + if (childScope && !preventRecursion) { + preventRecursion = true; + try { + childScope.$eval(); + } finally { + preventRecursion = false; + } + } + }); this.$watch(function(){return changeCounter;}, function(){ var src = this.$eval(srcExp), useScope = this.$eval(scopeExp); -- cgit v1.2.3