不刷新ui-router的重载状态

Reloading state without refreshing ui-router

本文关键字:重载 状态 ui-router 刷新      更新时间:2023-09-26

我正在使用ui路由器,现在我想使用url中的参数过滤数据(url的搜索部分),而不需要重新加载状态-我不需要每次都问服务器我想在集合中找到一些东西。

我的想法是监听事件$ routechangessuccess,取所有的搜索参数,并应用角过滤器与他们的集合。

我试过这样做

<a ui-sref="invoices.issued({ invoice_type_id: invoiceType.id })" ui-sref-opts="{reload: false}">{{invoiceType.name}}</a>

将url更改为?Invoice_type_id =2但是没有任何成功(状态正在重新加载)…

然后我写了我自己的指令,监听$locationChangeStart并使用reloadOnSearch: false在状态提供商,但我觉得像一个重写ui-router功能(反应加载页面与一些参数设置,突出显示活动链接等…)

我想问的是,这在ui-router中可能吗?如果是我做错了什么?或者有一种完全不同的方法来进行过滤?

由于Blazek

另一个防止重定向到您的状态的选项:

$transitions.onBefore({}, function($transition$) {
 if ($transition$.$to().name === '[state name]') {
   return false;
 }
});