我的应用程序中的一切都工作正常,直到我尝试添加 ngAnimate、ngMaterial 和 ng-image-gallery。 我不知道添加这些模块是否是问题的根源,但在问题发生之前我没有更改任何其他内容。
从那时起(即使在我从 app.js 和 index.html 中删除依赖项之后)所有 URL 都会转换为编码字符...
之前的样子:
http://.../app/index.html#/workshops
不是它转换为:
http://.../app/index.html#!/#%2Fworkshops
当然什么也没找到。导航不起作用,没有任何反应。
为什么现在要对 URL 进行编码?!即使只是在网络服务器上运行index.html也会给我以下URL:
http://.../app/index.html#!/
有人遇到同样的问题吗?为什么会这样呢?更重要的是:我该如何解决这个问题?!预先非常感谢。
我的路线配置:
'use strict';
angular.module('myApp').config(['$locationProvider', '$routeProvider',
function($locationProvider, $routeProvider) {
$routeProvider
.when('/', {
templateUrl : 'modules/start/views/start.html',
controller: 'StartController'
})
.when('/galerie', {
templateUrl : 'modules/galerie/views/galerie.html',
controller: 'GalerieController'
})
.when('/kontakt', {
templateUrl : 'modules/kontakt/views/kontakt.html',
controller: 'KontaktController'
})
.when('/workshops', {
templateUrl : 'modules/workshops/views/workshops.html',
controller: 'WorkshopsController'
})
;
}]);
这里是我如何切换导航中的路线:
<div class="navbar navbar-top hidden-xs">
<ul class="nav navbar-nav">
<li>
<a href='#/'>Start</a>
</li>
<li>
<a href='#/workshops'>Workshops</a>
</li>
<li>
<a href='#/galerie'>Galerie</a>
</li>
<li>
<a href='#/kontakt'>Kontakt & Buchung</a>
</li>
</ul>
</div>
这就是脚本的包含方式:
<script src="bower_components/angular/angular.js"></script>
<script src="bower_components/angular-route/angular-route.js"></script>
<script src="https://use.fontawesome.com/936815fb51.js"></script>
<script src="app.js"></script>
<script src="modules/config/routes.js"></script>
<script src="modules/start/start.js"></script>
<script src="modules/start/controllers/StartController.js"></script>
...
添加 控制台什么也没说。没有问题,没有错误。
最佳答案
天哪,我刚刚找到了答案...间接地,它与添加依赖项有关,因为我将使用的 Angular 版本从 1.58 更改为 1.61 - 我刚刚读到哈希前缀更改为“!”。
回答问题的链接在这里: Angular Route - Extra # in URL
路由配置中的以下行使路由器像以前一样工作:
$locationProvider.hashPrefix('');
感谢 Arjan Einbu 在链接中回答该问题。这拯救了我的一天。
关于javascript - Angular ngRoute 突然将 URL 转换为编码字符 #!/#%2F,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41919303/