一页上有几个routerLink
,导致notes/:id
:
routerLink="notes/1"
routerLink="notes/2"
routerLink="notes/3"
...
在同一个父组件中,该组件被<router-outlet></router-outlet>
加载NoteView
,它id
查找并显示信息。在地址栏中的链接之间切换时id
,组件会更改但不会重新加载,会与第一个id
打开的链接挂起。每次单击不同的链接时,如何强制组件更新?Event
在每次点击链接的时候,EventListner
会不会太麻烦的解决方案,会有几个这样的组件。
路线是这样的:
const routes: Routes = [
{
path: '',
component: HomeComponent
},
{
path: 'app',
component: TodoAppParentComponent,
children: [{
path: 'notes',
children: [{
path: ':id', // id в ссылке меняется но компонент остается неизменным
component: NoteViewComponent
}]
}]
}
];
问题组件类
export class NoteViewComponent implements OnInit {
id: string = null;
note: object = null;
constructor(
private http: HttpService,
private activatedRoute: ActivatedRoute
) { }
ngOnInit() {
this.id = this.activatedRoute.snapshot.params['id']; // не срабатывает при переходе по разным routerLink, как сделать чтоб срабатывал?
this.note = {
title: 'Пример заголовка, заметка',
body: `lorem....`
};
}
}
HTML 组件模板
<p>
id: {{id}}
</p>
<div *ngIf="note">
<h3>{{note.title}}</h3>
<hr>
<div class="body" innerHTML="{{note.body}}"></div>
</div>