diff --git a/src/ngMessages/messages.js b/src/ngMessages/messages.js index 2ac370f90eec..e1c9b8be4ba4 100644 --- a/src/ngMessages/messages.js +++ b/src/ngMessages/messages.js @@ -550,6 +550,8 @@ angular.module('ngMessages', []) link: function($scope, element, attrs) { var src = attrs.ngMessagesInclude || attrs.src; $templateRequest(src).then(function(html) { + if ($scope.$$destroyed) return; + $compile(html)($scope, function(contents) { element.after(contents); diff --git a/test/ngMessages/messagesSpec.js b/test/ngMessages/messagesSpec.js index 5613844bf591..5c56acb8a349 100644 --- a/test/ngMessages/messagesSpec.js +++ b/test/ngMessages/messagesSpec.js @@ -842,6 +842,25 @@ describe('ngMessages', function() { }) ); + it('should not throw if scope has been destroyed when template request is ready', + inject(function($rootScope, $httpBackend, $compile) { + $httpBackend.expectGET('messages.html').respond('