我有一个工作的Angular.js应用程序,启用了HTML5模式.
$location.Html5mode(true).hashbang("!");
Run Code Online (Sandbox Code Playgroud)
我想要实现的是获取一些URL或<a>标签来执行正常的浏览行为,而不是使用HTML5历史记录API更改地址栏中的URL并使用Angular控制器处理它.
我有这个链接:
<a href='/auth/facebook'>Sign in with Facebook</a>
<a href='/auth/twitter'>Sign in with Twitter</a>
<a href='/auth/...'>Sign in with ...</a>
Run Code Online (Sandbox Code Playgroud)
我希望浏览器将用户重定向到,/auth/...以便用户重定向到身份验证服务.
有什么方法可以做到这一点吗?
Nik*_*Nik 119
target="_self"在Angular 1.0.1中添加作品:
<a target="_self" href='/auth/facebook'>Sign in with Facebook</a>
Run Code Online (Sandbox Code Playgroud)
记录此功能(https://docs.angularjs.org/guide/$location - 搜索'_self')
如果你很好奇,请查看角度源(第5365行@ v1.0.1).如果!elm.attr('target')为真,则仅发生点击劫持.
小智 18
Fran6co方法的替代方法是禁用$ locationProvider中的'rewriteLinks'选项:
$locationProvider.html5Mode({
enabled: true,
rewriteLinks: false
});
Run Code Online (Sandbox Code Playgroud)
这将完成与调用$ rootElement.off('click')完全相同的事情,但不会干扰处理应用根元素上的点击事件的其他javascript.
小智 16
这是一起关闭深层链接的代码.它从rootElement禁用click事件处理程序.
angular.module('myApp', [])
.run(['$location', '$rootElement', function ($location, $rootElement) {
$rootElement.off('click');
}]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29057 次 |
| 最近记录: |