使用哈希网址粘贴在Anglular ui-router State.go上?

时间:2015-12-24 18:13:22

标签: javascript angularjs hash angular-ui-router angular-ui

我正在使用ui-router。我有一个州:

.state('new-personal-orders', {
    url: '/orders/new-personal-orders/:catId?',
    template: '<new-personal-orders></new-personal-orders>'
})  

在我的控制器中,我可以使用

进行状态调用
 $state.go('new-personal-orders',null,{reload:true})   

在Html文件中,我有一个锚标记:

<a href="/orders/new-personal-orders#12">Link</a>

如果点击了标签,则状态会发生变化,并且“个人订单”会被更改。在url中使用尾随哈希变为当前状态。然后网址看起来像:

http://localhost:3000/orders/new-personal-orders#12

我想使用ui-router的$ state.go()函数从控制器文件中执行相同的操作。但是没有添加哈希网址。

我的问题是,是否有任何方式可以通过ui-router中的$ state.go()传递哈希URL?

2 个答案:

答案 0 :(得分:7)

似乎你现在可以在状态参数中放入一个哈希值,如下所示:

$state.go('new-personal-orders', {'#': catId });

在状态配置中根本不需要/:catId。 见https://github.com/angular-ui/ui-router/pull/1867

答案 1 :(得分:0)

您可以将状态参数作为参数传递给$state.go

$state.go('new-personal-orders', {catId: 12}, {reload:true})  
// refers to: http://localhost:3000/orders/new-personal-orders/#12

您似乎试图在ng-repeat内部实现同样的内容,然后您应该用12之类的内容替换order.catId