diff options
| author | Misko Hevery | 2010-07-14 17:07:23 -0700 | 
|---|---|---|
| committer | Misko Hevery | 2010-07-14 17:07:23 -0700 | 
| commit | e3e9ac86750b20fb8ad6765011e06d569899612d (patch) | |
| tree | 51545a0a65f3056c54d213579b19e9f782e2fe00 /src | |
| parent | 0a57273f0000421639c926d4d180680e3a64c0f7 (diff) | |
| download | angular.js-e3e9ac86750b20fb8ad6765011e06d569899612d.tar.bz2 | |
ng:style remembers previous style and properly resets to it
Diffstat (limited to 'src')
| -rw-r--r-- | src/directives.js | 11 | ||||
| -rw-r--r-- | src/jqLite.js | 9 | 
2 files changed, 18 insertions, 2 deletions
diff --git a/src/directives.js b/src/directives.js index 6b81d864..4e7c070b 100644 --- a/src/directives.js +++ b/src/directives.js @@ -254,8 +254,17 @@ angularDirective("ng:hide", function(expression, element){  angularDirective("ng:style", function(expression, element){    return function(element){ +    var resetStyle = element.css();      this.$onEval(function(){ -      element.css(this.$eval(expression) || {}); +      var style = this.$eval(expression) || {}, key, mergedStyle = {}; +      for(key in style) { +        if (typeof resetStyle[key] == 'undefined') resetStyle[key] = null; +        mergedStyle[key] = style[key]; +      } +      for(key in resetStyle) { +        mergedStyle[key] = mergedStyle[key] || resetStyle[key]; +      } +      element.css(mergedStyle);      }, element);    };  }); diff --git a/src/jqLite.js b/src/jqLite.js index 68172fd8..a024507f 100644 --- a/src/jqLite.js +++ b/src/jqLite.js @@ -175,8 +175,15 @@ JQLite.prototype = {        } else {          return style[name];        } -    } else { +    } else if(name) {        extend(style, name); +    } else { +      var current = {}; +      for (var i=0; i<style.length; i++) { +        name = style[i]; +        current[name] = style[name]; +      } +      return current;      }    },  | 
