aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMisko Hevery2010-07-14 17:48:09 -0700
committerMisko Hevery2010-07-14 17:48:09 -0700
commit17d2ced9cc7e45d1d7272a1217861e598e5522dd (patch)
tree025484db26066cb047fc1d9041d7a3b68d17082c
parente3e9ac86750b20fb8ad6765011e06d569899612d (diff)
downloadangular.js-17d2ced9cc7e45d1d7272a1217861e598e5522dd.tar.bz2
appease IE on CSS styles
-rw-r--r--src/directives.js4
-rw-r--r--src/jqLite.js19
-rwxr-xr-xtest.sh2
-rw-r--r--test/BinderTest.js2
-rw-r--r--test/directivesSpec.js6
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);
}
},
diff --git a/test.sh b/test.sh
index d0a4839a..19a74d4b 100755
--- a/test.sh
+++ b/test.sh
@@ -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'});
});
});