Javascript 角度ui路由器动态查询字符串定义
我们有一个搜索页面,我们有数千个搜索属性,可以由管理面板定义。特征搜索结果页面的url如下所示:Javascript 角度ui路由器动态查询字符串定义,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,我们有一个搜索页面,我们有数千个搜索属性,可以由管理面板定义。特征搜索结果页面的url如下所示: http://example.com/search?a12=3213&a314=412412&a247=1941829&.... 当我们想使用AngularJS通过AngularUI router将该页面实现为SPA时,我无法理解,我们如何定义路由配置,以及如何从querystring读取所有搜索参数。因为ui路由器强制定义路由配置上的每个查询参数可能性,以便在$state
http://example.com/search?a12=3213&a314=412412&a247=1941829&....
当我们想使用AngularJS通过AngularUI router
将该页面实现为SPA时,我无法理解,我们如何定义路由配置,以及如何从querystring读取所有搜索参数。因为ui路由器
强制定义路由配置上的每个查询参数可能性,以便在$stateParams
中使用它们
$stateProvider.state('search', {
url: '/search?a1&a2&a3&a4&a5' // what about a1314?
controller: function ($stateParams) {
console.log($stateParams.a1314);
}
});
您知道解决方法吗?您可以在
url:'/search'
搜索路线的控制器中使用$location.search()
当在没有任何参数的情况下调用时,它返回当前url的搜索部分(作为对象)
var searchObject = $location.search();
// => {a12: '3213', a314: '412412'}
console.log(searchObject .a12); //3213
还有你们可以使用的路线
url: '/search*'
因此,它将匹配主要问题是,如果url带有未在route config中定义的查询参数,ui router会将其从url中删除,并显示没有该参数的页面。如何生成指向该url的链接?我相信目前还没有正式的解决方案:,但有一些类似的解决方法: