注入$ location服务使得我的url片段标识符很奇怪

时间:2017-02-05 08:56:21

标签: angularjs angularjs-scope angularjs-routing fragment-identifier

这是我的角度代码

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>

点击我的html中使用的“转到链接”后,网址会引用localhost/angular/#!#link而不是localhost/angular/#link

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

我正在使用AngularJS v1.6.1

1 个答案:

答案 0 :(得分:1)

正如前面提到的nivas,请看你的代码你有这样的一行

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