问题描述,
- 通过列表进入不同用户的详细信息界面,应该显示对应用户的信息。 用户信息的显示,已经放在了ngOninit中,获取用户数据。
- 但是通过路由进入用户信息界面,并未显示对应的每个用户的信息。发现每次只有第一次点开列表时才进入ngOninit获取用户数据,故第二次点进来时没有将之前的用户信息覆盖,显示第一次点击的那个列表对应用户的信息。
解决:
- 使用Docheck()钩子函数即可。本来想着需要在里面再调用一下ngOninit的获取数据,但是还没在里面写啥代码,只是继承了
DoCheck接口,就可以在路由进入时重新走ngOninit函数了。
export class StuSamecourseUserListPage implements OnInit,DoCheck {
public students:any = [];
public students_num:number = 0;
private class_id:any=null;
private classData:any = {
class_id: null,
class_name: "",
classtime: "",
place_id: null,
place_name: "",
semester: "",
tea_id: null,
tea_name: "",
week: ""
};
constructor(
private modalController: ModalController,
private _modal: Modal,
private _toast: Toast,
private router: Router,
private activatedRoute: ActivatedRoute,
private httpService:HttpServiceProvider
) { }
ngDoCheck() {
//console.log("router comin");
}
ngOnInit() {
console.log('samecourse -stu');
console.log(this.activatedRoute.queryParams);
this.class_id = this.activatedRoute.queryParams['value']['class_id'];
console.log(this.class_id);
this.getUserClassByClassId();
this.getSameCourseStuMesByClassId();
}