aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIgor Minar2011-04-07 14:36:41 -0700
committerIgor Minar2011-04-07 14:56:57 -0700
commit0d2d7025e60095afc3497c6cd4a4af9e0cd9b90e (patch)
treea8629b17ac0f76f59a45ef8e799ac6dfc825795d
parentd517bcad5b4db5a1a60159df537e69b70702a381 (diff)
downloadangular.js-0d2d7025e60095afc3497c6cd4a4af9e0cd9b90e.tar.bz2
use special nodeName_ impl only for IE<9
apparently IE9 is one step closer to becoming a real browser by treating xmlns-like ("foo:") prefixes in node names as part of the node name. fixes: https://groups.google.com/forum/?lnk=srg#!topic/angular/TGdrV4GsL8U
-rw-r--r--src/Angular.js2
-rw-r--r--test/AngularSpec.js21
2 files changed, 22 insertions, 1 deletions
diff --git a/src/Angular.js b/src/Angular.js
index 2f89fbbd..512ee829 100644
--- a/src/Angular.js
+++ b/src/Angular.js
@@ -428,7 +428,7 @@ function HTML(html, option) {
};
}
-if (msie) {
+if (msie < 9) {
nodeName_ = function(element) {
element = element.nodeName ? element : element[0];
return (element.scopeName && element.scopeName != 'HTML' ) ? uppercase(element.scopeName + ':' + element.nodeName) : element.nodeName;
diff --git a/test/AngularSpec.js b/test/AngularSpec.js
index 9b3357e5..444b9448 100644
--- a/test/AngularSpec.js
+++ b/test/AngularSpec.js
@@ -562,4 +562,25 @@ describe('angular', function(){
expect(scope.greeting).toEqual('hello world');
});
});
+
+
+ describe('nodeName_', function() {
+ it('should correctly detect node name with "namespace" when xmlns is defined', function() {
+ var div = jqLite('<div xmlns:ngtest="http://angularjs.org/">' +
+ '<ngtest:foo ngtest:attr="bar"></ng:test>' +
+ '</div>')[0];
+ expect(nodeName_(div.childNodes[0])).toBe('NGTEST:FOO');
+ expect(div.childNodes[0].getAttribute('ngtest:attr')).toBe('bar');
+ });
+
+ if (!msie || msie >= 9) {
+ it('should correctly detect node name with "namespace" when xmlns is NOT defined', function() {
+ var div = jqLite('<div xmlns:ngtest="http://angularjs.org/">' +
+ '<ngtest:foo ngtest:attr="bar"></ng:test>' +
+ '</div>')[0];
+ expect(nodeName_(div.childNodes[0])).toBe('NGTEST:FOO');
+ expect(div.childNodes[0].getAttribute('ngtest:attr')).toBe('bar');
+ });
+ }
+ });
});