diff --git a/src/ng/directive/ngStyle.js b/src/ng/directive/ngStyle.js index f1d3f66d90f0..c2f469a3e044 100644 --- a/src/ng/directive/ngStyle.js +++ b/src/ng/directive/ngStyle.js @@ -54,14 +54,7 @@ var ngStyleDirective = ngDirective(function(scope, element, attr) { scope.$watchCollection(attr.ngStyle, function ngStyleWatchAction(newStyles, oldStyles) { if (oldStyles && (newStyles !== oldStyles)) { - if (!newStyles) { - newStyles = {}; - } - forEach(oldStyles, function(val, style) { - if (newStyles[style] == null) { - newStyles[style] = ''; - } - }); + forEach(oldStyles, function(val, style) { element.css(style, ''); }); } if (newStyles) element.css(newStyles); }); diff --git a/test/ng/directive/ngStyleSpec.js b/test/ng/directive/ngStyleSpec.js index 51dd1c3fcb0c..0a3aedea4190 100644 --- a/test/ng/directive/ngStyleSpec.js +++ b/test/ng/directive/ngStyleSpec.js @@ -143,6 +143,17 @@ describe('ngStyle', function() { expect(element.css(postCompStyle)).not.toBe('99px'); }); + it('should clear style when the value is false', function() { + scope.styleObj = {'height': '99px', 'width': '88px'}; + scope.$apply(); + expect(element.css(preCompStyle)).toBe('88px'); + expect(element.css(postCompStyle)).toBe('99px'); + scope.styleObj = {'height': false, 'width': false}; + scope.$apply(); + expect(element.css(preCompStyle)).not.toBe('88px'); + expect(element.css(postCompStyle)).not.toBe('99px'); + }); + it('should set style when the value is zero', function() { scope.styleObj = {'height': '99px', 'width': '88px'}; scope.$apply();