javascript - Angular ui-router动态查询字符串定义

标签 javascript angularjs angular-ui-router

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

http://example.com/search?a12=3213&a314=412412&a247=1941829&....

当我们想通过使用 angular-ui-router 将该页面实现为 AngularJS 的 SPA 时,我无法理解,我们如何定义该路由配置以及我们如何读取所有搜索来自查询字符串的参数。因为 ui-router 强制定义路由配置中的每个查询参数可能性,以便在 $stateParams 中使用它们。

$stateProvider.state('search', {
    url: '/search?a1&a2&a3&a4&a5' // what about a1314?
    controller: function ($stateParams) {
        console.log($stateParams.a1314);
    }
});

您知道解决方法吗?

最佳答案

你可以在 url: '/search' 搜索路径的 controller 中使用 $location.search()

当不带任何参数调用时,它返回当前 url 的搜索部分(作为对象)。

var searchObject = $location.search();

// => {a12: '3213', a314: '412412'}

console.log(searchObject .a12); //3213

对于你可以使用的路线

 url: '/search*' 

所以它会匹配

关于javascript - Angular ui-router动态查询字符串定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27696135/

相关文章:

angularjs - 访问 Angular-UI-Router 的 onExit 范围?

angularjs - 是否可以使用拦截器向Angular $ http请求添加GET/POST参数

Angular 4 构建错误 : Error encountered resolving symbol values statically

AngularJS ui-router html5mode 无法重新加载

javascript - 使用 angular-ui-router 导航时访问初始参数值

javascript - 外部 js 文件彼此不认识

javascript - 我的下拉菜单充当选择器的功能

javascript - 如何执行某些功能

javascript - 按子属性对对象数组进行分组

javascript - AngularJS 中的自动跳转字段