aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexandre Potvin Latreille2013-12-19 12:21:14 +0000
committerPete Bacon Darwin2013-12-19 12:22:58 +0000
commitc7a1d1ab0b663edffc1ac7b54deea847e372468d (patch)
tree575c6c6263d4b54df940a7c908adc0dddf0a6f34
parent26d43cacdc106765bd928d41600352198f887aef (diff)
downloadangular.js-c7a1d1ab0b663edffc1ac7b54deea847e372468d.tar.bz2
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 `<a>` elements. Closes #5479
-rw-r--r--src/ng/compile.js4
-rwxr-xr-xtest/ng/compileSpec.js8
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('<a ng-attr-href="test/{{value}}"></a>')($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";