我正在使用angular
开发一个ui-router
的搜索应用。
要求:
所以我可以拥有像
这样的网址path/to/url/list?p=123&v=876
path/to/url/list?c=yes&a=true&p=123
path/to/url/list?z=yes&c=yes&a=true&p=123
path/to/url/list?z=yes&v=876&a=true&p=123
无尽的组合。我知道我可以使用$ location.search()来获取json格式的所有参数。那样太好了!但问题是我如何用ui-router
定义网址状态?明确定义url中的所有params都不是一个选项。我看过很多帖子但是我找不到具体的答案。
答案 0 :(得分:0)
如果您从$location
获取参数,则无需明确定义状态。
答案 1 :(得分:0)
我认为,最好的方法是使用' resolve' $ stateProvider配置的属性:
$stateProvider.state('mystate', {
// Some code here
resolve: {
queryData: ['$location', ($location) => {
$location.absUrl(); // Contains your full URI
return true;
}]
}
});
它是一种初始化。之后,ui-router将剪切URI,但您将存储所需的数据。当用户直接在浏览器地址输入中传递URI时,这种情况也可以正常工作。
此外,您可以尝试使用$ urlMatcher设置$ urlRouterProvider用于此目的,但这将更加困难。