angular2 使用navigate进行路由跳转,到新路由没有触发ngoninit周期函数。

发布于 2022-09-07 07:45:01 字数 1294 浏览 9 评论 0

跳转方法:_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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

爱的十字路口 2022-09-14 07:45:01

你可以尝试在router-outlet所在的组件捕获路由跳转事件,然后通过ChangeDetectorRef更新里面的内容
不敢说合不合适 但是我这边是凑效了

静若繁花 2022-09-14 07:45:01

这样就ok了

constructor(private  router: Router) {
    this.router.routeReuseStrategy.shouldReuseRoute = function() {
        return false;
    };
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文