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

Commit 074a146

Browse files
jimmywartingcaitp
authored andcommitted
perf(ngBind): set textContent rather than using element.text()
"Speeds up chrome with ~10% firefox by ~5%" We don't really see this result in benchmarks (https://www.dropbox.com/s/76wxqbvduade52s/big_table_benchmark_b1ee5396_vs_d580a954.zip?dl=0) However, it's basically harmless. Side effects: Use strict equality check for `undefined` to replace with empty string. Most target browsers will output `undefined` rather than the empty string if we don't do this. Previously, ngBindTemplate did not perform this check. However the change has been made to make behaviour consistent across all target browsers (chrome does output the empty string). Closes #9369 Closes #9396
1 parent 86c7d12 commit 074a146

File tree

1 file changed

+4
-5
lines changed

1 file changed

+4
-5
lines changed

src/ng/directive/ngBind.js

+4-5
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,9 @@ var ngBindDirective = ['$compile', function($compile) {
5858
$compile.$$addBindingClass(templateElement);
5959
return function ngBindLink(scope, element, attr) {
6060
$compile.$$addBindingInfo(element, attr.ngBind);
61+
element = element[0];
6162
scope.$watch(attr.ngBind, function ngBindWatchAction(value) {
62-
// We are purposefully using == here rather than === because we want to
63-
// catch when value is "null or undefined"
64-
// jshint -W041
65-
element.text(value == undefined ? '' : value);
63+
element.textContent = value === undefined ? '' : value;
6664
});
6765
};
6866
}
@@ -128,8 +126,9 @@ var ngBindTemplateDirective = ['$interpolate', '$compile', function($interpolate
128126
return function ngBindTemplateLink(scope, element, attr) {
129127
var interpolateFn = $interpolate(element.attr(attr.$attr.ngBindTemplate));
130128
$compile.$$addBindingInfo(element, interpolateFn.expressions);
129+
element = element[0];
131130
attr.$observe('ngBindTemplate', function(value) {
132-
element.text(value);
131+
element.textContent = value === undefined ? '' : value;
133132
});
134133
};
135134
}

0 commit comments

Comments
 (0)