aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/ng/directive/booleanAttrs.js3
-rw-r--r--test/ng/directive/ngSrcSpec.js17
2 files changed, 20 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
diff --git a/test/ng/directive/ngSrcSpec.js b/test/ng/directive/ngSrcSpec.js
new file mode 100644
index 00000000..a917c511
--- /dev/null
+++ b/test/ng/directive/ngSrcSpec.js
@@ -0,0 +1,17 @@
+'use strict';
+
+describe('ngSrc', function() {
+ var element;
+
+ afterEach(function() {
+ dealoc(element);
+ });
+
+ it('should not result empty string in img src', inject(function($rootScope, $compile) {
+ $rootScope.image = {};
+ element = $compile('<img ng-src="{{image.url}}">')($rootScope);
+ $rootScope.$digest();
+ expect(element.attr('src')).not.toBe('');
+ expect(element.attr('src')).toBe(undefined);
+ }));
+});