如何在页面更改时清除ui-router哈希?

时间:2017-01-04 22:41:09

标签: angularjs angular-ui-router

我正在使用角度为1.5.x的ui-router 1.0b3。还使用html5Mode(true)。哈希不用于路径,它们仅用于它所访问的特定页面。

我希望能够去 http://example.com/app/page#tab3 路线名称:app.page

然后导航到另一个页面,比如路线名称:app.another,它将带我到页面,但#停留。我不希望#状态跟随导航。两个页面都需要相同的“app”父级。如果我去另一个,它不应该去“http://example.com/app/another#tab3”,这就是正在做的事情。

它没有在ui-router 0.3.1

上执行此操作

我尝试在转换过程中删除哈希:     $ transitions.onBefore({exiting:'app。**'},function(trans){         trans.params(“to”)[“#”] = null;         $的location.hash( “”);     });

但这根本不起作用。

帮助?我认为这可能是一个错误,但我无法弄清楚。

https://github.com/angular-ui/ui-router/issues/3245

1 个答案:

答案 0 :(得分:0)

我有同样的问题。我找到了解决ui-router开发人员问题的方法。

您可以清除参数(参数名为'#')来清除哈希。

在模板中:

<a ui-sref="app.tasks({'#': null})">text</a>

在javascript代码中:

$state.go('app.tasks', {'#': null});

P.S。我使用 angular-ui-router ,版本为 1.0.0-beta.3

更多信息: https://github.com/angular-ui/ui-router/issues/3017