使用Angular的UI-Router的URL中的参数,与.otherwise

时间:2015-11-07 22:26:50

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

我想在我的页面上搜索。实际上,我的代码是

$stateProvider
  .state('aaa', {
    url: '/aaa',
    templateUrl: 'client/parties/views/aaa.ng.html',
    controller: 'Aaa'
  })

$urlRouterProvider.otherwise("/default");

现在,我想在我的页面上搜索,但是参数必须使用URL。 当我有$ urlRouterProvider.otherwise时如何使用params? 实际上,在URL中/ aaa /之后的所有内容都会导致重定向到/ default。

重要的是:我有超过20个参数,但是当没有选择时,我不想通过URL传递它。这很重要,因为我认为我不能做类似网址的事情:' / details /:param1:param2:param3:param4',

你能帮助我吗?

1 个答案:

答案 0 :(得分:1)

查看ui-router的documentation,如果没有在州的路由上定义至少一个参数,它似乎不可能重定向。

为了实现你想要的,我认为最好是使用某种类型的catch all参数。它或者是,限制深层链接,或减少参数数量并手动定义它。

  1. 定义一个catch all参数,如下所示。在这种情况下,如果" / files /"之后没有任何内容,则参数是路径重定向不会发生:
      

    ' / files / {路径:。*}' - 匹配以' / files /'开头的所有网址并将剩下的路径捕获到参数'路径'   ' / files / * path' - 同上。捕捉所有的特殊语法。

  2. 在新路由上定义一个参数,然后将一个参数拆分为控制器中的多个参数。