Angularjs 角度路由-URL中的额外路径

Angularjs 角度路由-URL中的额外路径,angularjs,ngroute,angularjs-1.6,Angularjs,Ngroute,Angularjs 1.6,学习一些角度-我被困在路线上 这是我的角度配置 var meanApp = angular.module('carz', ['ngRoute']); meanApp.config(function($routeProvider) { $routeProvider .when('/', { templateUrl: 'home.html', controller: 'mainCtrl' })

学习一些角度-我被困在路线上

这是我的角度配置

var meanApp = angular.module('carz', ['ngRoute']);


meanApp.config(function($routeProvider) {
    $routeProvider
        .when('/', {
            templateUrl: 'home.html',
            controller: 'mainCtrl'
        })
        .when('/red', {
            templateUrl: 'red.html',
            controller: 'redCtrl'
        });
});
这是我的链接

<a href="#">Home</a>
<a href="#red">Red</a>
我让我的角度控制器在ng视图标记中按预期工作

但是我不能使用上面的链接从一个控制器切换到另一个控制器

如果我选择红色标签,我的URL会添加一个额外的标签

注意如果我手动更改为

http://localhost:8080/#!/red
我的控制器改变了,它工作了,那为什么我会得到额外的


感谢您的帮助

自从AngularJS 1.6以来,路由发生了重大变化:

$location hash bang URL的哈希前缀已从空字符串更改为bang

解决方案:

要么开始使用!而不是 或者设置$locationProvider以仅使用即可接受,如下所示:

appModule.config(['$locationProvider', function($locationProvider) {
    $locationProvider.hashPrefix('');
}]);

这个问题对你很有帮助,谢谢。它应该work@ArpitMeena我在发帖之前就试过了,但没有解决问题。可能是重复的感谢-我可能会坚持使用ui路由器吗?想法?狗咖啡:我们在发现问题的应用程序中使用ui路由器,因此可能没有帮助;干杯-到目前为止,ui路由器还不错。还有$locationProvider.hashPrefix;修复了ngRoute的问题。
http://localhost:8080/#!/red
appModule.config(['$locationProvider', function($locationProvider) {
    $locationProvider.hashPrefix('');
}]);