繁体   English   中英

单击锚标记按钮时,AngularJs路由不起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM