From a4e08a6937ebfdeca9c9bdf1a14c0cff533d0dc8 Mon Sep 17 00:00:00 2001 From: Jason Bedard Date: Thu, 23 Oct 2014 00:27:20 -0700 Subject: [PATCH] refactor($compile): combining elementControllers and controllers --- src/ng/compile.js | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/ng/compile.js b/src/ng/compile.js index 34e38137606f..fd13cc584e1d 100644 --- a/src/ng/compile.js +++ b/src/ng/compile.js @@ -1614,7 +1614,6 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { var terminalPriority = -Number.MAX_VALUE, newScopeDirective, controllerDirectives = previousCompileContext.controllerDirectives, - controllers, newIsolateScopeDirective = previousCompileContext.newIsolateScopeDirective, templateDirective = previousCompileContext.templateDirective, nonTlbTranscludeDirective = previousCompileContext.nonTlbTranscludeDirective, @@ -1911,8 +1910,6 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { } if (controllerDirectives) { - // TODO: merge `controllers` and `elementControllers` into single object. - controllers = {}; elementControllers = {}; forEach(controllerDirectives, function(directive) { var locals = { @@ -1938,8 +1935,6 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { if (!hasElementTranscludeDirective) { $element.data('$' + directive.name + 'Controller', controllerInstance.instance); } - - controllers[directive.name] = controllerInstance; }); } @@ -1954,14 +1949,14 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { isolateScope.$$isolateBindings, newIsolateScopeDirective, isolateScope); } - if (controllers) { + if (elementControllers) { // Initialize bindToController bindings for new/isolate scopes var scopeDirective = newIsolateScopeDirective || newScopeDirective; var bindings; var controllerForBindings; - if (scopeDirective && controllers[scopeDirective.name]) { + if (scopeDirective && elementControllers[scopeDirective.name]) { bindings = scopeDirective.$$bindings.bindToController; - controller = controllers[scopeDirective.name]; + controller = elementControllers[scopeDirective.name]; if (controller && controller.identifier && bindings) { controllerForBindings = controller; @@ -1970,7 +1965,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { bindings, scopeDirective); } } - forEach(controllers, function(controller) { + forEach(elementControllers, function(controller) { var result = controller(); if (result !== controller.instance && controller === controllerForBindings) { @@ -1981,7 +1976,6 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { bindings, scopeDirective); } }); - controllers = null; } // PRELINKING