我使用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'
})
非常感谢任何有关如何处理此问题的见解!
答案 0 :(得分:1)
我找到了答案:要禁用ui-sref继承所有当前视图参数,您必须向链接添加第二个指令:ui-sref-opts="{inherit: false}"
。