angular - Angular 8 Router Link 在代码的特定部分不起作用
问题描述
在我的代码中,如果用户未通过身份验证并且工作正常,我使用 routerLink 重定向用户,但在同一页面中,我有几个链接重定向到建议的帖子,但在点击时,只有浏览器中的链接发生变化,点击的帖子确实不加载,这是我当前版本的代码:
注意:RouterModule 已经在 app.module.ts 中导入
import { RouterModule } from '@angular/router';
@NgModule({
declarations: [
...
FaqComponent,
],
imports: [
RouterModule,
BrowserModule,
...
],
providers: [],
bootstrap: []
})
export class AppModule { }
不工作:
<h1>Suggested FAQ</h1>
<ul class="list-group list-group-flush">
<li style="padding: 12px 0px;background-color: transparent;font-weight: bold;" *ngFor="let faq of suggestedFaqs" class="list-group-item">
<a routerLink="/faq/{{faq.id}}/{{faq.title}}" >{{faq.title}}</a>
</li>
</ul>
作品:
<div style="margin: 30px 0px;" *ngIf="!isLoggedIn">
<a routerLink="/login" class="btn_faq" >login</a>
</div>
app-routing.module.ts 中的路径定义
{ path: 'faq/:id/:title', component: FaqComponent},
例子:
http://localhost:4200/faq/2/Changer%20votre%20langue%20préférée.
当它在 FaqComponent 外部单击时,该路由可以正常工作,但如果在 FaqComponent 内部单击它则不起作用
解决方案
路由器只有在导航到不同的路由时才会销毁并重新创建组件。当仅更新路由参数或查询参数但路由相同时,不会销毁和重新创建组件。
推荐阅读
- angular - Controllers.cs 适用于不同的地址 - 来自 Visual Studio 模板的 .net core angular 应用程序
- python - 如何在mysql中将JSON数据从一个表保存到另一个表时删除多余的双引号
- apache-spark - Spark 应用程序因错误“Signal Term”而终止
- swift - 在 Swift 中将文本限制为一定数量的单词
- path-finding - 从 Godot 中的 Curve3D (Path) 获取手动定义的向量
- ios - iOS 存储 SQLite 数据库
- c# - gRPC 间歇性地具有高延迟
- javascript - 选项卡:数据切换不展开数据
- android - Wifi状态不会在android中改变?
- keyboard - Android WebVIew中的键盘长键按下