Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度布线-如何制定路径?_Angular_Typescript - Fatal编程技术网

Angular 角度布线-如何制定路径?

Angular 角度布线-如何制定路径?,angular,typescript,Angular,Typescript,目标:我希望将站点路由到EN或ES版本。更具体地说,如果他们选择西班牙语,应该: 从: 致: 基本上我需要localhost:4200/en才能转到localhost:4200/es 反之亦然,如果他们选择英语 但是,我不能硬编码它,因为Dev/Rel/Prod的根目录不同 问题:它总是路由到: 我所尝试的: 当我这样做时: if (event.value == "es") { this.routerService.navigate(['/es/']); } 我得到: 我也得到了同

目标:我希望将站点路由到EN或ES版本。更具体地说,如果他们选择西班牙语,应该:

  • 从:

  • 致:

基本上我需要localhost:4200/en才能转到localhost:4200/es

反之亦然,如果他们选择英语

但是,我不能硬编码它,因为Dev/Rel/Prod的根目录不同

问题:它总是路由到:

我所尝试的

当我这样做时:

if (event.value == "es") { this.routerService.navigate(['/es/']); }   
我得到:

我也得到了同样的结果:

if (event.value == "es") { this.routerService.navigate(['es/']); }
if (event.value == "es") { this.routerService.navigate(['/es']); }
预期结果实际结果

您的路由器基本路径似乎包括
/en
。你有两个选择

1) 使用
。/
relativeTo:this向后导航。路线如下:

this.routerService.navigate(['../es'], {relativeTo: this.route});
您必须像这样在构造函数中注入
route

constructor(
    private routerService: Router,
    private route: ActivatedRoute, {
  }
2) 从基本路径中删除
/en
,然后使用:

switch(event.value) {
  case 'es': 
    this.routerService.navigate(['/es']);
    break;
  case 'en':
    this.routerService.navigate(['/en']);
    break;
}

请包括您的路由文件,并说明您使用什么进行翻译?路由器允许导航到应用程序的路由。而不是其他应用程序的URL。使用window.location的普通旧链接我认为这是
this.routerService.navigate(['/es']
应与
路由器一起使用。导航
。如果您使用的是
窗口。位置
请尝试
window.location.href='/es'
@AshotAleqsanyan,我尝试过使用window.location.href。我没有使用window.location.href=window.location.hostname+“/es/”根据调试器,.hostname是localhost。但它仍然将其指向:请使用此
window.location.href='/es'
谢谢。我尝试了选项1。我使用了../。出于某种原因,我只能返回到localhost:4200/en/#。因此,当我使用它时,我仍然可以