{lang :(?:da | en)}在Javascript中做了什么?

时间:2016-04-14 15:14:47

标签: javascript angularjs angular-ui-router

我试图了解这个状态在ui-router中意味着什么:

$stateProvider.state('app', {
  abstract: true,
  url: '/{lang:(?:da|en)}',
  template: '<ui-view/>'
});
$stateProvider.state('app.home', {
  url: '',
    templateUrl: 'views/home-page.html',
});

具体是{lang :(?:da | en)}做什么。我之前没见过这个结构。

2 个答案:

答案 0 :(得分:4)

这是使用所谓的正则表达式参数您可以看到他们的documentation here

因此,/{lang:(?:da|en)}表示检查lang参数是da还是en。如果是,则渲染模板。

具体而言,这将匹配/da/en

答案 1 :(得分:2)

它是UrlMatcher

它基本上是一个正则表达式,只接受da或en作为lang参数

{} 表示一个场所人

lang 是参数名称

(?:da | en)表示可能的值

我认为您正在关注此示例 - &gt; https://fadeit.dk/blog/post/angular-translate-ui-router-seo

确实不是很清楚