| OLD | NEW |
| (Empty) | |
| 1 part of angular.directive; |
| 2 |
| 3 /** |
| 4 * The `ngStyle` directive allows you to set CSS style on an HTML element condi
tionally. |
| 5 * |
| 6 * @example |
| 7 <span ng-style="{color:'red'}">Sample Text</span> |
| 8 */ |
| 9 @NgDirective( |
| 10 selector: '[ng-style]', |
| 11 map: const { 'ng-style': '@styleExpression'}) |
| 12 class NgStyleDirective { |
| 13 dom.Element _element; |
| 14 Scope _scope; |
| 15 |
| 16 String _styleExpression; |
| 17 |
| 18 NgStyleDirective(this._element, this._scope); |
| 19 |
| 20 Function _removeWatch = () => null; |
| 21 var _lastStyles; |
| 22 |
| 23 /** |
| 24 * ng-style attribute takes an expression hich evals to an |
| 25 * object whose keys are CSS style names and values are corresponding valu
es for those CSS |
| 26 * keys. |
| 27 */ |
| 28 set styleExpression(String value) { |
| 29 _styleExpression = value; |
| 30 _removeWatch(); |
| 31 _removeWatch = _scope.$watchCollection(_styleExpression, _onStyleChange); |
| 32 } |
| 33 |
| 34 _onStyleChange(Map newStyles) { |
| 35 dom.CssStyleDeclaration css = _element.style; |
| 36 if (_lastStyles != null) { |
| 37 _lastStyles.forEach((val, style) { css.setProperty(val, ''); }); |
| 38 } |
| 39 _lastStyles = newStyles; |
| 40 |
| 41 if (newStyles != null) { |
| 42 newStyles.forEach((val, style) { css.setProperty(val, style); }); |
| 43 } |
| 44 } |
| 45 } |
| OLD | NEW |