【问题标题】:Route doesn't change when I have scrolled in datatable当我在数据表中滚动时,路线不会改变
【发布时间】:2017-12-15 08:53:31
【问题描述】:

当前行为

我创建了一个 ngx-datatable,其中有一列里面有一个按钮。当我使用数据表加载路线时,此按钮单击工作正常。此按钮的作用是路由到单击元素的另一个“详细信息页面”。

但是当我加载相同的路线并首先滚动数据表然后单击相同的按钮时,它不再起作用了。路线不变。但是当我点击浏览器的上一个按钮和之后的前进按钮时,会显示“DetailPage”。

图片和代码

所以第一张图片显示了带有 ngx-datatable 的新加载的组件。当我单击红色按钮(标记)时,路由器会转到另一个页面并且工作正常(见图 2)。

Freshly loaded component

Result without scrolling

但是,当我重新运行应用程序并在组件加载后向下滚动一点时(参见图 3)。同一个按钮不再起作用,但如果我执行上述技巧(首先单击上一个,然后在浏览器导航中前进),它确实会加载所需的路线。

Freshly loaded component and scrolled Result I get when I click after I scroll

在按钮 Click 上执行的方法:

goToDetailOfWearable(wearable: ResultWearable) {
this.resultService.sendResultWearableToService(wearable);
this.router.navigateByUrl('Home/ProcessCategory/Processes/Activities/Result/Details'); }

wearable参数为行,第一行将此行发送到服务,第二行路由到“详情页”

【问题讨论】:

    标签: angular angular2-routing lifecycle ngx-datatable


    【解决方案1】:

    这似乎与区域有关。如果您强制操作在区域内运行,它会起作用:

    this.zone.run(() => this.router.navigateByUrl('Home/ProcessCategory/Processes/Activities/Result/Details'); });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-22
      • 1970-01-01
      • 2014-01-30
      • 2019-01-23
      • 1970-01-01
      • 1970-01-01
      • 2017-05-26
      • 2020-11-18
      相关资源
      最近更新 更多