我们的一些合作伙伴包含指向我们网站的链接,例如https://www.lapetitetranche.fr/#b4sqF
我们的应用程序使用!
作为哈希前缀,因此Angular认为出错了并引发错误,但它不是错误的URL。
Uncaught Error: [$location:ihshprfx] Invalid url "https://www.lapetitetranche.fr/#b4sqF", missing hash prefix "#!".
我只想要angular忽略此参数,只需加载与https://www.lapetitetranche.fr相同的页面即可。我怎么能这样做?
感谢
答案 0 :(得分:0)
很遗憾,你无法完全按照自己的意愿行事。
唯一的解决方案是使用角度路由器的html5模式。 在这种情况下,您必须创建将重定向到主页的服务器路由。
否则,如果你不想使用HTML5模式,你可以使用这个小小的黑客来防止角度行为。
var hash = window.location.hash;
if(hash.indexOf('#/') == 0) {
window.location.hash = '';
}
编辑:(来自评论)
if(hash.indexOf('#!') < 0 &&
hash.indexOf('#') == 0 &&
hash.indexOf('?#') < 0 &&
hash.indexOf('?') != 0 &&
hash.indexOf('#state') < 0 ){
window.location.hash = '#!';
}
答案 1 :(得分:0)
您可以使用要在其中使用哈希链接的target="_self"
标记中的<a>
来绕过角度路由过程。 Angular会将链接视为外部页面,但该页面仍将加载到同一浏览器选项卡中。