$route should create child scope via $new

This commit is contained in:
Igor Minar 2011-01-19 00:10:39 -08:00 committed by Misko Hevery
parent 63690d1892
commit a5eb3ed107
3 changed files with 2 additions and 13 deletions

View file

@ -708,7 +708,7 @@ angularServiceInject('$route', function(location) {
if (!childScope) {
var pathParams = matcher(location.hashPath, route);
if (pathParams) {
childScope = createScope(parentScope);
childScope = parentScope.$new();
$route.current = extend({}, routeParams, {
scope: childScope,
params: extend({}, location.hashSearch, pathParams)

View file

@ -625,20 +625,9 @@ 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);

View file

@ -651,7 +651,7 @@ describe("widget", function(){
// this one should really be just '1', but due to lack of real events things are not working
// properly. see discussion at: http://is.gd/ighKk
expect(element.text()).toEqual('4');
expect(element.text()).toEqual('2');
dealoc(element);
});