router.navigate更改URL,但未呈现组件

Ema*_*lta 6 url-redirection angular-ui-router angular2-routing angular

<a href="/my-path/{{my_param}}"></a>我不想在模板中使用,而是愿意使用带有参数的函数将我重定向到页面。

因此,这就是我在.ts文件中构建函数的方式:

redirectToChat(my_param){
    this.router.navigate(['./my-path/' + my_param ]);
}
Run Code Online (Sandbox Code Playgroud)

以及我在模板中的调用方式:

 <div (click)="redirectToChat(my_param)">
    ...
</div>
Run Code Online (Sandbox Code Playgroud)

它更改URL,但不呈现组件。我将此导入到组件中:

import { Router, ActivatedRoute, ParamMap } from '@angular/router';
Run Code Online (Sandbox Code Playgroud)

我在构造函数中使用了它: private router: Router

您可以帮助我正确渲染组件吗?我还能如何使用功能将用户重定向到页面?

小智 6

您正在混合导航(到组件)和按URL导航。您是否尝试过navigationByUrl?

this.router.navigateByUrl('./my-path/' + my_param);
Run Code Online (Sandbox Code Playgroud)

  • 这仍然只刷新 url,但不会导航到 url (3认同)