From 18ae985c3a3147b589c22f6ec21bacad2f578e2b Mon Sep 17 00:00:00 2001 From: Igor Minar Date: Fri, 25 Oct 2013 19:10:50 -0700 Subject: fix($compile): don't instantiate controllers twice for element transclude directives This is a fix for regression introduced last week by faf5b980. Closes #4654 --- src/ng/compile.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src/ng') diff --git a/src/ng/compile.js b/src/ng/compile.js index 84432647..7754a8e6 100644 --- a/src/ng/compile.js +++ b/src/ng/compile.js @@ -1191,9 +1191,13 @@ function $CompileProvider($provide) { childTranscludeFn = compile($template, transcludeFn, terminalPriority, replaceDirective && replaceDirective.name, { - controllerDirectives: controllerDirectives, - newIsolateScopeDirective: newIsolateScopeDirective, - templateDirective: templateDirective, + // Don't pass in: + // - controllerDirectives - otherwise we'll create duplicates controllers + // - newIsolateScopeDirective or templateDirective - combining templates with + // element transclusion doesn't make sense. + // + // We need only transcludeDirective so that we prevent putting transclusion + // on the same element more than once. transcludeDirective: transcludeDirective }); } else { -- cgit v1.2.3