From fbc7f1b4545f7ed9376ef3abe9b5fbb3cb43dc43 Mon Sep 17 00:00:00 2001 From: Igor Minar Date: Fri, 4 Feb 2011 13:29:45 -0800 Subject: ng:view should be nestable in ng:include --- src/widgets.js | 3 ++- test/widgetsSpec.js | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/widgets.js b/src/widgets.js index ea76cfc2..6482f455 100644 --- a/src/widgets.js +++ b/src/widgets.js @@ -1074,7 +1074,8 @@ angularWidget('ng:view', function(element) { } else { element.html(''); } - }); + })(); //initialize the state forcefully, it's possible that we missed the initial + //$route#onChange already // note that this propagates eval to the current childScope, where childScope is dynamically // bound (via $route.onChange callback) to the current scope created by $route diff --git a/test/widgetsSpec.js b/test/widgetsSpec.js index 6bff5a36..12fe7b64 100644 --- a/test/widgetsSpec.js +++ b/test/widgetsSpec.js @@ -880,6 +880,25 @@ describe("widget", function(){ rootScope.$eval(); expect(rootScope.$element.text()).toEqual('new parent'); }); + + it('should be possible to nest ng:view in ng:include', function() { + dealoc(rootScope); + rootScope = angular.compile('
include:
'); + $browser = rootScope.$service('$browser'); + $browser.xhr.expectGET('includePartial.html').respond('view: '); + $browser.setUrl('http://server/#/foo'); + + $route = rootScope.$service('$route'); + $route.when('/foo', {controller: angular.noop, template: 'viewPartial.html'}); + rootScope.$init(); + + $browser.xhr.expectGET('viewPartial.html').respond('content'); + $browser.xhr.flush(); + + expect(rootScope.$element.text()).toEqual('include: view: content'); + expect($route.current.template).toEqual('viewPartial.html'); + dealoc($route.current.scope); + }); }); }); -- cgit v1.2.3