[英]AngularJs routing not working when clicked on an anchor tag button
我创建了这个Plunker并添加了一个简单的路由。 但是由于某种原因,路由无法正常工作。 单击删除按钮时,我想重定向到#/ delete,但是什么也没有发生。
的script.js:
var appRoot = angular.module('myNgApp', ['ngRoute', 'ui.bootstrap']);
appRoot.config([
'$routeProvider', function ($routeProvider) {
$routeProvider
.when('/', { templateUrl: 'ngIndex.html', controller: 'IndexCtrl' })
.when('/delete', { templateUrl: 'delete.html', controller: 'DeleteCtrl' })
.otherwise({ redirectTo: '/' });
}
]);
ngIndex.html:
<a class="btn btn-danger" href="#/delete">Delete</a>
因此,这是因为使用哈希前缀更改了1.6号角路由。 因此,改为og“”,哈希前缀现在为“!”。
由于aa077e8,用于$ location hash-bang URL的默认哈希前缀已从空字符串('')更改为bang('!')。 如果您的应用程序不使用HTML5模式或正在不支持HTML5模式的浏览器上运行,并且您未指定自己的哈希前缀,则客户端URL现在将包含! 字首。 例如,URL将变为mydomain.com/#!/a/b/c,而不是mydomain.com/#/a/b/c。
如果您实际上不希望使用哈希前缀,则可以通过向应用程序中添加配置块来恢复以前的行为:
appModule.config([['$ locationProvider',function($ locationProvider){
$ locationProvider.hashPrefix( ''); }]); 资源
我在类似的文章中提出了可能的解决方案: 角度不正确。 URL是localhost:8081 /#!/#pageName
从另一篇文章:
该怎么办?
1.将HTML5mode设置为true
$locationProvider.html5Mode(true);
并在html中设置html标头中的基数:
<base href="/">
最后将<a ng-href="#pagename">
更改为
<a ng-href="pagename">
2.从1.5开始恢复原来的行为-手动设置哈希前缀这将使您的应用程序按您期望的方式工作。
app.config(['$locationProvider', function($locationProvider) {
$locationProvider.hashPrefix('');
}]);
在你的例子中
要查看这是您可以更改的问题
$window.location.href = '#/delete';
至
$window.location.href = '#!/delete';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.