angular2 使用navigate进行路由跳转,到新路由没有触发ngoninit周期函数。
跳转方法:_this代表组件实例
_this.router.navigate(['/analysis/examdetail'],
{
queryParams: _this.params
});
在新路由:
constructor(private route: ActivatedRoute, private mrequest: MrequestService, public changeDetectorRef: ChangeDetectorRef) {
this.route.queryParams.subscribe(params => {
console.log(params);
this.e_id = params.e_id;
this.p_id = params.p_id;
this.endtype = params.endtype;
});
this.isIOS = mrequest.isIOSPlatform();
console.log(this.endtype);
this.getExamDetail();
}
ngOnInit() {
console.log(2222);
}
页面中的跳转是点击echarts柱状图进行跳转的
this.echartsIntance.on('click', function(params) {
// console.log(params);
const dataIndex = params.dataIndex;
// console.log(_this.examId);
_this.params['e_id'] = _this.examId[dataIndex];
_this.params['p_id'] = _this.paperId[dataIndex];
_this.params.cid = _this.classIdList[dataIndex];
// console.log(_this.params);
_this.router.navigate(['/analysis/examdetail'],
{
queryParams: _this.params
});
});
怀疑是不是echarts中的跳转angular2检测不到?有什么解决办法呢?
构造器中的代码可以执行,但是其中的数据不能渲染到页面中,控制台打印不出ngoninit中的信息。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你可以尝试在router-outlet所在的组件捕获路由跳转事件,然后通过ChangeDetectorRef更新里面的内容
不敢说合不合适 但是我这边是凑效了
这样就ok了