我正在设置HTML5模式。因此,模板中的链接没有hashbang,如:
<a ng-href='/link/to/action'>Click here</a>
但问题是,较旧的IE版本需要hashbang网址,我知道angularjs会因为IE而回退。但是我已经根据HTML5形成了链接。如何回退我自己的hashbangs链接?
换句话说, 我希望模板中的链接反映模式(HTML5或hashbang)类型并相应地设置其href。
因此,对于旧版浏览器,我希望链接是这样的:
<a ng-href='/#/link/to/action'>Click here</a>
答案 0 :(得分:1)
$locationProvider.html5Mode(false);
将此添加到app.config
函数,它将禁用html5模式,并启用哈希#
如果您还需要!
,那么也可以添加
$locationProvider.hashPrefix('!');
前:
angular.module('yourApp', ['ngCookies', 'ngResource'])
.config(function($stateProvider, $urlRouterProvider, $locationProvider){
$locationProvider.html5Mode(false);
$locationProvider.hashPrefix('!');
})
编辑:要检查html5,您可以包含modernizer.js库,或使用他们提供的代码示例
以下是一些可用于查找浏览器是否支持Html5的技术
http://diveintohtml5.info/detect.html#geolocation
前:
if (Modernizr.geolocation) {
$locationProvider.html5Mode(true);
} else {
$locationProvider.html5Mode(false);
}