0

这里是我的角码

var app = angular.module('app', []); 
app.controller('mainController', ['$location', '$scope', '$log', function(location, scope, log) { 
    log.info(location.path()); 
}]); 

,这是我的HTML

<div ng-controller="mainController"> 
    <h1>Sample</h1> 
    <a href="#link">Go to Link</a> 
    <p id="link"> 
     Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. 
    </p> 
</div> 

现在点击“转到链接”后,用我的该网址是指localhost/angular/#!#link而不是localhost/angular/#link

Infact将'$ location'服务注入角度应用程序后,任何带有片段标识符的url都会转到localhost/angular/#!#url。为什么会导致/#!#url而不是/#url

我使用AngularJS V1.6.1

+0

两个原因一行。你有没有在任何地方或者如果你使用旧的浏览器应用'hashPrefix'方法。 [ref here](https://docs.angularjs.org/guide/$location) – nivas

回答

1

正如前面提到的由nivas请参阅您的代码,你有这样的

$locationProvider.html5Mode(true) 
$locationProvider.hashPrefix('!')