From c7a1d1ab0b663edffc1ac7b54deea847e372468d Mon Sep 17 00:00:00 2001
From: Alexandre Potvin Latreille
Date: Thu, 19 Dec 2013 12:21:14 +0000
Subject: fix($compile): remove invalid IE exceptional case for `href`
It appears that this exceptional case was only valid for IE<8 and that for IE>=8 it
was actually causing a bug with the `ng-href-attr` directive on `` elements.
Closes #5479
---
src/ng/compile.js | 4 +---
test/ng/compileSpec.js | 8 +++++++-
2 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/src/ng/compile.js b/src/ng/compile.js
index 3e5a2479..9285b253 100644
--- a/src/ng/compile.js
+++ b/src/ng/compile.js
@@ -1009,9 +1009,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
nName = directiveNormalize(name.toLowerCase());
attrsMap[nName] = name;
- attrs[nName] = value = trim((msie && name == 'href')
- ? decodeURIComponent(node.getAttribute(name, 2))
- : attr.value);
+ attrs[nName] = value = trim(attr.value);
if (getBooleanAttrName(node, nName)) {
attrs[nName] = true; // presence means true
}
diff --git a/test/ng/compileSpec.js b/test/ng/compileSpec.js
index 1b98cd58..39e23695 100755
--- a/test/ng/compileSpec.js
+++ b/test/ng/compileSpec.js
@@ -4243,7 +4243,13 @@ describe('$compile', function() {
expect(element.attr('test2')).toBe('Misko');
expect(element.attr('test3')).toBe('Misko');
}));
-
+
+ it('should work with the "href" attribute', inject(function($compile, $rootScope) {
+ $rootScope.value = 'test';
+ element = $compile('')($rootScope);
+ $rootScope.$digest();
+ expect(element.attr('href')).toBe('test/test');
+ }));
it('should work if they are prefixed with x- or data-', inject(function($compile, $rootScope) {
$rootScope.name = "Misko";
--
cgit v1.2.3