我正在开发一个AngularJs应用程序。我的问题如下:
我使用复选框和单选按钮使用某些参数来过滤数据。在过滤数据后,我已经转移到另一个州。当用户单击浏览器上的后退按钮时,我无法获取过滤后的数据。而不是我得到一个通用的状态数据。
例如
我有专业人士名单,并根据年龄和性别应用过滤器以获取特定专业人士,并在获得过滤结果后,如果点击任何结果我被重定向到一个新的状态,即该专业人员的详细视图..现在,如果我点击浏览器的后退按钮获取所有专业人员的列表,但我想要我的过滤列表..
请帮我解决这个问题..
这可以实现,如果我们在应用过滤器时在状态url中传递一些参数..但是如何实现这个.. ??
任何人都可以指导我吗?
答案 0 :(得分:0)
您的查询参数是否是网址的一部分?例如,我在应用程序中进行分页和过滤,我的URL如下所示:
现在,UI路由器中映射到此状态的状态如下:
.state("accounts.search", {
url: "/search?searchText&pageSize&pageNumber&someBool&someBool2",
params: {
searchText: { value: "", squash: true },
pageSize: { value: "25", squash: true },
pageNumber: { value: "1", squash: true },
someBool: { value: "false", squash: true },
someBool2: { value: "false", squash: true }
},
controller: "accountsController as vm",
templateUrl: "site/accounts/search/accounts.html",
data: { pageTitle: "Accounts" },
resolve: { //...resolve data here... },
someOtherStuffIfNeeded: { //stuff here}
}
})
看看documentation for ui router没有采用状态参数来解释默认值以及壁球的作用。重要的是要注意params是字符串(注意false是" false")。希望这会有所帮助。