重新加载状态而不刷新ui-router

时间:2014-06-20 20:40:25

标签: javascript angularjs angular-ui-router

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

我的想法是监听事件$ routeChangeSuccess,获取所有搜索参数并对它们进行集合应用角度过滤。

我试图做这样的事情

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

将网址更改为?invoice_type_id = 2 ,但没有任何成功(状态正在重新加载)......

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

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

谢谢Blazek

1 个答案:

答案 0 :(得分:0)

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

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