Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么要通过AngularJS';s$location.hash添加一个额外的"#/&引用;在炸土豆之前?_Angularjs_Url_Routes_Hashbang - Fatal编程技术网

为什么要通过AngularJS';s$location.hash添加一个额外的"#/&引用;在炸土豆之前?

为什么要通过AngularJS';s$location.hash添加一个额外的"#/&引用;在炸土豆之前?,angularjs,url,routes,hashbang,Angularjs,Url,Routes,Hashbang,添加语句$location.hash('tab1')后,我希望URL更改为“/#tab1”,但它变为“/#/#tab1” 是什么导致额外的“#/”出现?我如何避免它 更新: 为了澄清,我不想从片段URL中删除哈希,而是删除空路径。按照我的语法$location.hash('tab1'),我希望浏览器URL变成“/#tab1”,但它变成了“/#/#tab1”。额外的“#/”是由$locationProvider配置引起的。它可以通过以下方式移除: $locationProvider.html5Mo

添加语句
$location.hash('tab1')后,我希望URL更改为“/#tab1”,但它变为“/#/#tab1”

是什么导致额外的“#/”出现?我如何避免它

更新: 为了澄清,我不想从片段URL中删除哈希,而是删除空路径。按照我的语法
$location.hash('tab1'),我希望浏览器URL变成“/#tab1”,但它变成了“/#/#tab1”。

额外的“#/”是由$locationProvider配置引起的。它可以通过以下方式移除:

$locationProvider.html5Mode(true)


请参见

如果您在其中一个配置中使用$locationProvider.html5模式(true),那么您将不会有初始值,但因为您需要它。。。为什么不在没有散列的情况下导航/tab1启用HTML5模式的可能副本将把URL改为“/tab1”,而不是“/#tab1”“,对吗?它会把/#/tab1转换成/tab1问我的问题,我希望/#/#tab1变成/#tab1而不是/tab1。你的答案和你链接的问题忽略了这个区别。首先,你应该设置HTML5模式以避免哈希标签的重复。然后您可以使用
$location.hash('tab1')
将哈希设置为#tab1。在您的情况下,通过应用
$locationProvider.html5Mode(true)
您将得到/#tab1而不是/#tab1。我想这正是你想要的。不是吗?你只需在你的应用程序中检查它。