2016-03-03 74 views
2

我已经在Angular 1.5应用程序中使用ui-router获得分页视图,这需要大量的搜索参数。角ui路由器ui-sref包括*所有*参数,不只是所需的

此视图中的记录有ui-sref链接,允许用户通过特定参数筛选其搜索,如category

这些链接几乎可以工作。问题在于它们生成的链接不仅包括我指定的参数category,还包括当前正在用于该视图的所有其他参数:page等等。

例如:

当前URL:/index/?page=8&query=querytext

链接ui-srefui-sref="index({category: record.category})"

所需的链接URL:/index/?category=desiredCategory

链接URL它实际上会创建:/index/?page=8&query=querytext&category=desiredCategory

生成的URL不仅仅是不需要的,因为它包含页面参数,它甚至可能链接到一个甚至不存在的页面。显然,我可以为这个视图可能需要的每一种参数指定空参数,但是考虑到这个数字会很快变得笨重。

有没有什么办法让ui-router创建ui-sref链接,这些链接只能指向指定的参数,而不是当前正在使用的参数和所有其他参数?我已经试过指定的默认值在我的UI路由器状态,但似乎并没有工作:

.state('index', { 
    url: "/?page&query&category", 
    params: { 
     page: { 
      value: '1', 
      squash: true 
     }, 
     query: { 
      value: '', 
      squash: true 
     }, 
     category: { 
      value: '', 
      squash: true 
     }, 
    }, 
    templateUrl: "index.html", 
    controller: 'PostController' 
}) 

任何见解如何处理这将不胜感激!

回答

1

我找到了答案:要禁用ui-sref继承所有当前视图参数,必须在链接中添加第二个指令:ui-sref-opts="{inherit: false}"