Javascript 哈希模式下的角度JS链接行为不正确
在我的应用程序中,我的页面中的链接存在一些问题 因此,只需简单概述一下:Javascript 哈希模式下的角度JS链接行为不正确,javascript,angularjs,url,Javascript,Angularjs,Url,在我的应用程序中,我的页面中的链接存在一些问题 因此,只需简单概述一下: 我已经关闭了HTML5模式 这是我的路由设置 $routeProvider .when('/',{ templateUrl: '/views/search.html', controller : 'SearchCtrl' }) .when('/result',{ templateUrl: '/views/result.html', controller : 'resul
- 我已经关闭了HTML5模式
- 这是我的路由设置
$locationProvider.html5Mode(false)$routeProvider .when('/',{ templateUrl: '/views/search.html', controller : 'SearchCtrl' }) .when('/result',{ templateUrl: '/views/result.html', controller : 'resultCtrl' }) .when('/no-result',{ templateUrl: '/views/no-result.html', controller : 'noResultCtrl' }) .otherwise({ redirectTo: '/' });
- 如果我只是在我的域中键入,页面将很好地加载到以下url
- 但是,假设我的页面中有一个a href,我想链接回主页
<a ng-href="/" class="link-dark">Link </a>
它会将url更改为Domain/#,但不会加载视图和控制器
但是如果我把url改成
<a ng-href="/#/" class="link-dark">Link </a>
它加载正确
这是正常的行为吗?这是正常的行为。如果你使用像Angular Ui router这样的东西,你实际上可以使用状态,而不必使用#符号。使用。。
它无需任何额外的努力就能解决您的问题,并为路由提供了许多其他功能。这是一篇优秀的文章,解释了hashbang使用(#)时角度路由是如何工作的 你会看到,是的,这是正常的行为
为了进一步探索,我会说您可以自定义angular来删除hashbang,但如果您希望能够通过URL访问应用程序的任何页面,我建议您保留它。例如,如果选择删除此hashbang,则必须在服务器上添加一个端点,该端点将每次调用的应用程序主页返回到类似“/something”的url,而不是“/#/something”。如果我不够清楚,请尽管问。y这很正常
hrefs
应该是
,而when
应该是。when('/',{