AngularJS 1.1.5中存在临时解决方案- 自动将哈希标记添加到 URL
答案解释了第一步(如上所述,添加了新的哈希前缀)
yourApp.config(['$locationProvider', function($locationProvider){
$locationProvider.html5Mode(true).hashPrefix('!');
}]);
第一位处理 Angular 在视觉上干扰您的地址栏,但现在单击任何链接都无法正常工作(阅读history.pushState
:)
因此,正如用户@Kevin Beal 指出的那样,解决方法target
是<a>
将_self
$('a[href]').attr({'target':'_self'})
或根据具体情况:
<a href="foo" target="_self">Foo</a>
<a href="http://some.external/bar" target="_blank">Bar</a>
虽然,为了方便和理智,我认为它是这些的结合。
无标记target
<a href="foo">Foo</a>
<a href="http://some.external/bar">Bar</a>
JS
// If `http` protocol present, assume external link
$('a[href^="http://"]').attr({'target':'_blank'});
// Otherwise, assume internal link
$('a:not([href^="http://"])').attr({'target':'_self'});
值得注意的是,上述选择器确实需要正确的 jQuery。