Skip to content

Commit 551adec

Browse files
committed
fix for angular#11343 - bindToController for multiple directives
1 parent 170ff9a commit 551adec

File tree

1 file changed

+14
-15
lines changed

1 file changed

+14
-15
lines changed

src/ng/compile.js

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1970,26 +1970,25 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
19701970
}
19711971
if (elementControllers) {
19721972
// Initialize bindToController bindings for new/isolate scopes
1973-
var scopeDirective = newIsolateScopeDirective || newScopeDirective;
1974-
var bindings;
1975-
var controllerForBindings;
1976-
if (scopeDirective && elementControllers[scopeDirective.name]) {
1977-
bindings = scopeDirective.$$bindings.bindToController;
1978-
controller = elementControllers[scopeDirective.name];
1979-
1980-
if (controller && controller.identifier && bindings) {
1981-
controllerForBindings = controller;
1982-
thisLinkFn.$$destroyBindings =
1983-
initializeDirectiveBindings(scope, attrs, controller.instance,
1984-
bindings, scopeDirective);
1985-
}
1986-
}
19871973
for (i in elementControllers) {
1974+
var scopeDirective = newIsolateScopeDirective || controllerDirectives[i];
1975+
var bindings;
1976+
var controllerForBindings;
1977+
if (scopeDirective && elementControllers[scopeDirective.name]) {
1978+
bindings = scopeDirective.$$bindings.bindToController;
1979+
controller = elementControllers[scopeDirective.name];
1980+
if (controller && controller.identifier && bindings) {
1981+
controllerForBindings = controller;
1982+
thisLinkFn.$$destroyBindings =
1983+
initializeDirectiveBindings(scope, attrs, controller.instance,
1984+
bindings, scopeDirective);
1985+
}
1986+
}
19881987
controller = elementControllers[i];
19891988
var controllerResult = controller();
19901989
if (controllerResult !== controller.instance) {
19911990
controller.instance = controllerResult;
1992-
$element.data('$' + directive.name + 'Controller', controllerResult);
1991+
$element.data('$' + controllerDirectives[i].name + 'Controller', controllerResult);
19931992
if (controller === controllerForBindings) {
19941993
// Remove and re-install bindToController bindings
19951994
thisLinkFn.$$destroyBindings();

0 commit comments

Comments
 (0)