aboutsummaryrefslogtreecommitdiffstats
path: root/src/ng/directive/booleanAttrs.js
diff options
context:
space:
mode:
authorXiangru Chen2012-07-14 17:40:24 +0800
committerMisko Hevery2012-09-06 16:06:24 -0700
commitb6e4a71166c7f00f4140fd7ea8f0cd81b4487a3f (patch)
tree39d144516ab65fb71a6da6f2761a75979423adda /src/ng/directive/booleanAttrs.js
parentd9eff86ef77dd76208cef21e882239d4db0eac1e (diff)
downloadangular.js-b6e4a71166c7f00f4140fd7ea8f0cd81b4487a3f.tar.bz2
fix(ngSrc): don't set src if value is empty string
Current implementation of ngSrc may lead to empty src attribute when page is loading. For example: <img ng-src="{{image.url}}"> can be temporarily rendered as <img src=""> before the image resource is loaded. Some browser emits a request to the current page when seeing <img src=""> (Firefox13 and IE8 will, Chromium20 won't), which leads to performance problems.
Diffstat (limited to 'src/ng/directive/booleanAttrs.js')
-rw-r--r--src/ng/directive/booleanAttrs.js3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/ng/directive/booleanAttrs.js b/src/ng/directive/booleanAttrs.js
index cce10a3b..2cc26ce7 100644
--- a/src/ng/directive/booleanAttrs.js
+++ b/src/ng/directive/booleanAttrs.js
@@ -302,6 +302,9 @@ forEach(['src', 'href'], function(attrName) {
priority: 99, // it needs to run after the attributes are interpolated
link: function(scope, element, attr) {
attr.$observe(normalized, function(value) {
+ if (!value)
+ return;
+
attr.$set(attrName, value);
// on IE, if "ng:src" directive declaration is used and "src" attribute doesn't exist