diff options
| author | Misko Hevery | 2010-07-14 17:48:09 -0700 | 
|---|---|---|
| committer | Misko Hevery | 2010-07-14 17:48:09 -0700 | 
| commit | 17d2ced9cc7e45d1d7272a1217861e598e5522dd (patch) | |
| tree | 025484db26066cb047fc1d9041d7a3b68d17082c | |
| parent | e3e9ac86750b20fb8ad6765011e06d569899612d (diff) | |
| download | angular.js-17d2ced9cc7e45d1d7272a1217861e598e5522dd.tar.bz2 | |
appease IE on CSS styles
| -rw-r--r-- | src/directives.js | 4 | ||||
| -rw-r--r-- | src/jqLite.js | 19 | ||||
| -rwxr-xr-x | test.sh | 2 | ||||
| -rw-r--r-- | test/BinderTest.js | 2 | ||||
| -rw-r--r-- | test/directivesSpec.js | 6 | 
5 files changed, 18 insertions, 15 deletions
| diff --git a/src/directives.js b/src/directives.js index 4e7c070b..bcc427e8 100644 --- a/src/directives.js +++ b/src/directives.js @@ -254,11 +254,11 @@ angularDirective("ng:hide", function(expression, element){  angularDirective("ng:style", function(expression, element){    return function(element){ -    var resetStyle = element.css(); +    var resetStyle = getStyle(element);      this.$onEval(function(){        var style = this.$eval(expression) || {}, key, mergedStyle = {};        for(key in style) { -        if (typeof resetStyle[key] == 'undefined') resetStyle[key] = null; +        if (resetStyle[key] === undefined) resetStyle[key] = '';          mergedStyle[key] = style[key];        }        for(key in resetStyle) { diff --git a/src/jqLite.js b/src/jqLite.js index a024507f..de1884a3 100644 --- a/src/jqLite.js +++ b/src/jqLite.js @@ -36,6 +36,16 @@ function jqClearData(element) {    }  } +function getStyle(element) { +  var current = {}, style = element[0].style, value; +  for (var name in style) { +    value = style[name]; +    if (1*name != name && name != 'cssText' && value && typeof value == 'string' && value !='false') +      current[name] = value; +  } +  return current; +} +  function JQLite(element) {    if (isElement(element)) {      this[0] = element; @@ -175,15 +185,8 @@ JQLite.prototype = {        } else {          return style[name];        } -    } 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; +      extend(style, name);      }    }, @@ -4,4 +4,4 @@ if [[ $tests = "" ]]; then  fi  java -jar lib/jstestdriver/JsTestDriver.jar --tests "$tests" -# java -jar lib/jstestdriver/JsTestDriver.jar --tests "$tests" --config jsTestDriver-jquery.conf +#java -jar lib/jstestdriver/JsTestDriver.jar --tests "$tests" --config jsTestDriver-jquery.conf diff --git a/test/BinderTest.js b/test/BinderTest.js index 1b1201fa..44f918e4 100644 --- a/test/BinderTest.js +++ b/test/BinderTest.js @@ -27,7 +27,7 @@ BinderTest.prototype.testChangingTextfieldUpdatesModel = function(){    state.scope.$eval();    assertEquals('abc', state.scope.model.price);  }; - +    BinderTest.prototype.testChangingTextareaUpdatesModel = function(){    var c = this.compile('<textarea name="model.note">abc</textarea>');    c.scope.$eval(); diff --git a/test/directivesSpec.js b/test/directivesSpec.js index 8ce949aa..a42faa9a 100644 --- a/test/directivesSpec.js +++ b/test/directivesSpec.js @@ -184,13 +184,13 @@ describe("directives", function(){      it('should preserve and remove previus style', function(){        var scope = compile('<div style="color:red;" ng:style="myStyle"></div>');        scope.$eval(); -      expect(element.css()).toEqual({color:'red'}); +      expect(getStyle(element)).toEqual({color:'red'});        scope.myStyle = {color:'blue', width:'10px'};        scope.$eval(); -      expect(element.css()).toEqual({color:'blue', width:'10px'}); +      expect(getStyle(element)).toEqual({color:'blue', width:'10px'});        scope.myStyle = {};        scope.$eval(); -      expect(element.css()).toEqual({color:'red'}); +      expect(getStyle(element)).toEqual({color:'red'});      });    }); | 
