如何使用othwerwise函数传递查询参数

时间:2015-04-29 14:49:40

标签: javascript angularjs angular-ui-router angular-ui

鉴于以下javascript:

setSize(PaneDimenson)

当我访问该页面时

setSize

我被重定向到

  

BASE_URL /搜索

但查询参数丢失。

有没有办法用其他函数传递查询参数?

1 个答案:

答案 0 :(得分:0)

你不需要抓住注射器和$ state.go,根本不需要。 otherwise方法的参数可以是一个网址路径,可以在其中包含参数

因此,在您的特定情况下,以下代码可以引导您进入 base_url / search?query = x

$urlRouterProvider.otherwise("/search?query=x");

或者,参数可以是返回URL路径的函数。如果您不确定它可能具有哪些URL参数,您只需要从$location获取参数然后格式化为类似URL的字符串并将其返回。

$urlRouterProvider.otherwise(function($injector, $location) {
    var params = $location.search()

    // format params to 'p1=v1&p2=v2' style
    var formatted = Object.keys(params).map(function(key) {
        return key + '=' + params[key]
    }).join('&')

    return '/search?' + formatted
});