角路线 - 额外#在URL

角路线 - 额外#在URL

问题描述:

学习一些角 - 和我卡在路由角路线 - 额外#在URL

这里是我的角度配置

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> 

当我加载我的节点应用程序,我指向

http://localhost:8080/#!/ 

我的角度控制器按照预期在ng-view标签内工作

但是我无法使用上述链接从一个控制器切换到另一个控制器。

如果我选择红色标签我的网址增加了一个额外#成为

http://localhost:8080/#!/#red 

注意,如果我手动更改

http://localhost:8080/#!/red 

我的控制器的变化和它的作品,为什么我收到额外#

感谢您的任何帮助

+1

这个问题可以对你有所帮助,谢谢。 http://*.com/questions/14771091/removing-the-fragment-identifier-from-angularjs-urls-symbol –

+0

Red。它应该工作 – Ved

+0

@ArpitMeena我试图在发布问题之前,它并没有解决问题。 – DogCoffee

由于AngularJS 1.6在路由中存在突破性变化:

$ location hash-bang URL的哈希前缀已从空字符串“”更改为“爆炸!”。

(见https://github.com/angular/angular.js/blob/master/CHANGELOG.md

解决方案:

要么开始使用#!代替# 或设置$ locationProvider只使用#,像这样接受:

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

谢谢 - 我可能会坚持使用ui-router吗?想法? – DogCoffee

+0

DogCoffee:我们在应用程序中使用ui-router时发现问题,所以这可能没有帮助;) –

+0

干杯 - 迄今为止用ui-router非常好。另外$ locationProvider.hashPrefix('');用ngRoute修复了这个问题。 – DogCoffee