Angular ui-router ui-sref包括* all *参数,而不仅仅是所需的参数

时间:2016-03-03 09:39:33

标签: javascript angularjs angular-ui-router

我使用ui-router在Angular 1.5应用程序中获得了一个分页视图,该视图需要大量的搜索参数。

此视图中的记录包含ui-sref个链接,允许用户按特定参数过滤搜索,例如category

这些链接非常好用。问题是它们生成的链接不仅包括我指定的category参数,还包括当前用于该视图的所有其他参数:page,等等。

例如:

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

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

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

它实际创建的链接网址: /index/?page=8&query=querytext&category=desiredCategory

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

有没有办法让ui-router创建仅指向指定参数的ui-sref链接,而不是当前正在使用的那个参数和所有其他参数?我已尝试在我的ui-router状态中指定默认值,但这似乎不起作用:

.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 个答案:

答案 0 :(得分:1)

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