Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度ui路由器动态查询字符串定义_Javascript_Angularjs_Angular Ui Router - Fatal编程技术网

Javascript 角度ui路由器动态查询字符串定义

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

我们有一个搜索页面,我们有数千个搜索属性,可以由管理面板定义。特征搜索结果页面的url如下所示:

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的链接?我相信目前还没有正式的解决方案:,但有一些类似的解决方法: