Javascript 除了第一次,为什么角度子路由不渲染组件?
我的角度项目中几乎没有组件。和子路由,以在一个特殊组件中渲染这些组件。当我第一次单击以路由它时,渲染组件。但在此之后,它只更改url参数,而不呈现任何组件 这是我的密码 course.component.htmlJavascript 除了第一次,为什么角度子路由不渲染组件?,javascript,angular,routing,angular-ui-router,Javascript,Angular,Routing,Angular Ui Router,我的角度项目中几乎没有组件。和子路由,以在一个特殊组件中渲染这些组件。当我第一次单击以路由它时,渲染组件。但在此之后,它只更改url参数,而不呈现任何组件 这是我的密码 course.component.html <div *ngIf="courses"> <a *ngFor="let course of courses" class="btn btn-danger" color="warn" routerLink="{{ course.id }}">{{ cours
<div *ngIf="courses">
<a *ngFor="let course of courses" class="btn btn-danger" color="warn" routerLink="{{ course.id }}">{{ course.title }}</a>
</div>
每个组件实例化只调用一次
ngOnInit
。所以这是正常的行为
如果您希望实时更改,则需要使用observable,如:
ngOnInit() {
this.route.paramMap.pipe(
switchMap(params => {
this.segmentId = params.get('segment');
return this.data.getCourses(this.segmentId);
})
).subscribe(
data => {
this.courses = data[0].courses;
this.meta_data = data[0];
this.showSpinner = false;
}
)
}
找不到switchMap您必须导入运算符:
import{switchMap}来自'rxjs/operators'代码>
ngOnInit() {
this.route.paramMap.pipe(
switchMap(params => {
this.segmentId = params.get('segment');
return this.data.getCourses(this.segmentId);
})
).subscribe(
data => {
this.courses = data[0].courses;
this.meta_data = data[0];
this.showSpinner = false;
}
)
}