2016-12-16 47 views
0

我一直在开发一个AngularJS应用程序的最后一个月与angular v1.5.8angular-route v1.5.8node v 7.1.0(与nvm)。突然之间,我的网址包含一个hashbang,路由不起作用,所以我无法更改页面。AngularJS网址突然包含hashbang

而不是

http://localhost:8080/#/about当我第一次加载页面时,我得到http://localhost:8080/#!/about

,当我尝试通过单击<a href="#/chat">更改为http://localhost:8080/#/chat我得到http://127.0.0.1:3000/#!/about#%2Fchat

有谁知道为什么会发生这种情况,或者我可能改变了这种新行为?我已经删除了我的node_modulesnpm install再次编辑,它仍然发生。

相关代码如下

的index.html

 <ul class="nav navbar-nav navbar-right"> 
     <li><a href="#/about">About</a></li> 
     <li><a href="#/chat">Chat</a></li> 
     </ul> 

routes.js

angular.module('routes', ['ngRoute']) 
.config(['$routeProvider', function($routeProvider){ 
    $routeProvider 
    .when('/about', { 
     templateUrl: 'views/about.html', 
     controller: 'AboutController' 
    }) 
    .when('/chat', { 
     templateUrl: 'views/chat.html', 
     controller: 'ChatController' 
    }) 
    .otherwise({ 
     redirectTo: '/about' 
    }); 
}]); 

回答

0

看看$ locationProvider,其hashPrefix允许你指定你想你的前缀斜线什么。如果你想让你的代码工作,把$ locationProvider放到你的依赖项中并输入以下内容

$locationProvider.hashPrefix('') 

config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider){ 
$locationProvider.hashPrefix('') 
    $routeProvider 
    .when('/about', { 
     templateUrl: 'views/about.html', 
     controller: 'AboutController' 
    })