diff options
| author | Vojta Jina | 2012-06-16 13:04:40 -0700 | 
|---|---|---|
| committer | Vojta Jina | 2012-06-20 12:18:48 -0700 | 
| commit | 3da4194f98fa0c1ad1e5ab159719e4b25799e6d4 (patch) | |
| tree | 8ee46d67bde82ddcb88c42ab765ae63435278aa2 /src | |
| parent | ad5d2f2991ecfe1ec6152be71982b8980236c988 (diff) | |
| download | angular.js-3da4194f98fa0c1ad1e5ab159719e4b25799e6d4.tar.bz2 | |
fix($location): url rewriting if element was removed
When user clicks a link, $location needs to intercept this event.  The <a> doesn't have to be target element of the DOM event, so it needs to traverse the DOM, to find first <a> parent.
If the target element was removed from DOM, during the same event, it would throw an exception. This fixes the issue.
Closes #1058
Diffstat (limited to 'src')
| -rw-r--r-- | src/ng/location.js | 4 | 
1 files changed, 2 insertions, 2 deletions
diff --git a/src/ng/location.js b/src/ng/location.js index 727a0c2b..cf50952d 100644 --- a/src/ng/location.js +++ b/src/ng/location.js @@ -550,8 +550,8 @@ function $LocationProvider(){        // traverse the DOM up to find first A tag        while (lowercase(elm[0].nodeName) !== 'a') { -        if (elm[0] === $rootElement[0]) return; -        elm = elm.parent(); +        // ignore rewriting if no A tag (reached root element, or no parent - removed from document) +        if (elm[0] === $rootElement[0] || !(elm = elm.parent())[0]) return;        }        var absHref = elm.prop('href'),  | 
