Angularjs UI-Router,哈希更改时没有状态更改



我们在页面上有一个手风琴,它为主题设置哈希,以允许深度链接。该页面在HTML5Mode的UI-Router上运行。单击主题时,Ui-路由器会重新加载解析。
我怎样才能阻止这种情况??
我试过:
reloadOnsearch = false状态定义中,它对搜索参数效果很好,但在哈希更改时仍然重新加载

if( $transition$.$to().name == $transition$.$from().name) {
$transition$.abort() // or return false; // or preventDefault()
}

这有效,但不会将哈希放入地址中,这显然是必需的。
如何阻止 UI-Router 重新加载解析并触发其状态更改事件?

更新更多信息:
我都试过了,

<a ng-click="toggle();">

$location.hash("value")

<a href="#value">

控制器中有preventDefault(),这(正如预期的那样(没有产生任何影响。

解决方案(希望(
这似乎有效,以防有人面临同样的问题:
$transitions.onBefore({}, function( transition ) { if(transition.to().name == transition.from().name) { const paramsCopy = Object.assign({}, transition.params()); const stateService = transition.router.stateService; return stateService.target(transition.from(), paramsCopy); } })

我从你的问题中了解到,你有一个带有角度 Js 的手风琴,当你尝试单击手风琴选项卡时,UI 路由器会重新加载页面。

尝试从数据目标替换 href 属性

<li><a data-target="#switchTabs" data-toggle="tab">Tabs</a></li>

最新更新