aboutsummaryrefslogtreecommitdiffstats
path: root/src/directives.js
diff options
context:
space:
mode:
authorMisko Hevery2010-07-14 17:07:23 -0700
committerMisko Hevery2010-07-14 17:07:23 -0700
commite3e9ac86750b20fb8ad6765011e06d569899612d (patch)
tree51545a0a65f3056c54d213579b19e9f782e2fe00 /src/directives.js
parent0a57273f0000421639c926d4d180680e3a64c0f7 (diff)
downloadangular.js-e3e9ac86750b20fb8ad6765011e06d569899612d.tar.bz2
ng:style remembers previous style and properly resets to it
Diffstat (limited to 'src/directives.js')
-rw-r--r--src/directives.js11
1 files changed, 10 insertions, 1 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);
};
});