We have a project which uses Angular, but only for the UI binding/AJAX aspect of it, not for any sort of routing or SPA functionality.
We want to be able to use anchor links (#section-2
) in articles we write within the CMS we have chosen, as well as use anchor links from other pages (/my-page#section-C
), but Angular rewrites these to #/section-2
, which breaks the anchor links that the CMS sets up.
It is not possible to augment the CMS to modify how anchor links are handled.
Is it possible to either:
Remove the
hashchange
event binding from within Angular? I see that this event is attached to in the source filesrc/ng/browser.js
where it handles some of the routing and link rewriting, but it's inside of a closure so it cannot be accessed directly (and we are linking to Angular from a CDN so it is not possible to modify the Angular source, plus we don't want to have to maintain our own "custom" Angular source).Set an option or call a configuration method which ultimately disables the entire routing aspect of Angular and prevents it from rewriting any sort of links? (Or, is there a way to not include this portion of Angular, but still retain the controller/UI binding/AJAX functionality?)
Note that I have already tried this:
$locationProvider.html5Mode(true)
However it renders all other links on the site inoperable because all links are passed through Angular for processing. So if I link to the homepage (<a href="/">Home</a>
) and click the link with html5mode
on, the link does nothing.