2014-06-20 42 views
0

我正在使用UI路由器,现在我想过滤数据使用PARAMS在URL(搜索部分的URL),无需重新加载状态 - 我不需要问服务器每次我想找东西在收集。刷新状态没有刷新UI路由器

我的想法是听事件$ 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路由器功能(反应加载页面设置一些参数,突出显示行为ive link等...)

所以我想问一下是否可以用ui-router?如果我做错了什么?或者有没有一种完全不同的方法来实现过滤?

感谢Blazek

+0

我建议的routeParams设置一个变量,并且注入/使用,在你的过滤器,而不是重写一堆模块。 –

+0

谢谢,是的,我想这样做,但我不太确定,因为ui-sref选项在我的问题中描述的方式不起作用。我想避免再次下载整个集合,有数百条记录,所以我想减少服务器的使用情况,并在客户端过滤数据。 – blazek

+0

这听起来像你想要的是创建一个过滤器/工厂,并注入你的搜索参数,把它传回给控制器。我从来没有这样做过,但是这个资源可能会帮助https://egghead.io/search?q=filters –

回答

0

另一种选择,以防止重定向到您的状态:

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