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

{lang:(?:da|en)}在Javascript中做什么?,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,我试图理解这种状态在ui路由器中的含义: $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}做什么。我以前

我试图理解这种状态在ui路由器中的含义:

$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}做什么。我以前没有见过这个构造。

这是使用所谓的Regex参数,您可以看到它们的

所以,/{lang:?:da | en}意味着检查lang参数是da还是en。如果是,则渲染模板


具体来说,这将匹配/da或/en

这是使用所谓的Regex参数,您可以看到它们的

所以,/{lang:?:da | en}意味着检查lang参数是da还是en。如果是,则渲染模板

具体来说,这将匹配/da,或/en

这是一个

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

{}表示一个位置

lang是参数名

?:da | en表示可能的值

我认为您正在遵循这个示例->

而且确实不是非常清晰

这是一个

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

{}表示一个位置

lang是参数名

?:da | en表示可能的值

我认为您正在遵循这个示例->


而且确实不是非常清晰

在我看来,它创建了一个命名的选择语言,根据URL中找到的语言首选项,它将包含da或en。就JavaScript而言,它只是一个没有特殊意义的字符串。在我看来,它创建了一个命名的选择语言,根据URL中找到的语言首选项,它将包含da或en。就JavaScript而言,它只是一个没有特殊意义的字符串。