Skip to content
This repository was archived by the owner on Apr 12, 2024. It is now read-only.

Commit b3ec730

Browse files
committed
refactor($compile): $$addBindingInfo accepts single expression or an array
Instead of knowing about `.expressions` property, it just accepts a single expression or an array of expressions.
1 parent 2ab0d5d commit b3ec730

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

src/ng/compile.js

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -907,8 +907,16 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
907907
NG_ATTR_BINDING = /^ngAttr[A-Z]/;
908908

909909
compile.$$addBindingInfo = debugInfoEnabled ? function $$addBindingInfo(element, binding) {
910+
var bindings = element.data('$binding') || [];
911+
912+
if (isArray(binding)) {
913+
bindings = bindings.concat(binding);
914+
} else {
915+
bindings.push(binding);
916+
}
917+
910918
safeAddClass(element, 'ng-binding');
911-
element.data('$binding', (element.data('$binding') || []).concat(binding.expressions || [binding]));
919+
element.data('$binding', bindings);
912920
} : noop;
913921

914922
compile.$$addScopeInfo = debugInfoEnabled ? function $$addScopeInfo(element, scope, isolated, noTemplate) {
@@ -1979,7 +1987,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
19791987
compile: function textInterpolateCompileFn(templateNode) {
19801988
return function textInterpolateLinkFn(scope, node) {
19811989
var parent = node.parent();
1982-
compile.$$addBindingInfo(parent, interpolateFn);
1990+
compile.$$addBindingInfo(parent, interpolateFn.expressions);
19831991
scope.$watch(interpolateFn, function interpolateFnWatchAction(value) {
19841992
node[0].nodeValue = value;
19851993
});

src/ng/directive/ngBind.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ var ngBindDirective = ['$compile', function($compile) {
123123
var ngBindTemplateDirective = ['$interpolate', '$compile', function($interpolate, $compile) {
124124
return function(scope, element, attr) {
125125
var interpolateFn = $interpolate(element.attr(attr.$attr.ngBindTemplate));
126-
$compile.$$addBindingInfo(element, interpolateFn);
126+
$compile.$$addBindingInfo(element, interpolateFn.expressions);
127127
attr.$observe('ngBindTemplate', function(value) {
128128
element.text(value);
129129
});

0 commit comments

Comments
 (0)