diff --git a/src/directive/ngView.js b/src/directive/ngView.js index d5b24bcb..95b1546d 100644 --- a/src/directive/ngView.js +++ b/src/directive/ngView.js @@ -149,7 +149,8 @@ var ngViewDirective = ['$http', '$templateCache', '$route', '$anchorScroll', '$c lastScope = current.scope = scope.$new(); if (current.controller) { - $controller(current.controller, {$scope: lastScope}); + element.contents(). + data('$ngControllerController', $controller(current.controller, {$scope: lastScope})); } link(lastScope); diff --git a/test/directive/ngViewSpec.js b/test/directive/ngViewSpec.js index bf3706ac..52aefa3a 100644 --- a/test/directive/ngViewSpec.js +++ b/test/directive/ngViewSpec.js @@ -408,4 +408,33 @@ describe('ng-view', function() { expect($rootScope.load).toHaveBeenCalledOnce(); }); }) + + + it('should set $scope and $controllerController on the view', function() { + function MyCtrl($scope) { + $scope.state = 'WORKS'; + $scope.ctrl = this; + } + + module(function($routeProvider) { + $routeProvider.when('/foo', {template: 'tpl.html', controller: MyCtrl}); + }); + + inject(function($templateCache, $location, $rootScope, $route) { + $templateCache.put('tpl.html', [200, '