改变路线后,Angular 4 JS脚本无法正常工作

时间:2017-09-21 15:42:03

标签: jquery angular

我尝试通过angular-cli加载脚本来同步两个div。当第一次加载页面时,脚本工作正常。我通过导航改变路线的Aftter。返回第一页时,脚本不再起作用了。

Angular CLI:

  "scripts": [
    ....
    "assets/scripts/scrollsync.js"
  ]

scrollsync.js:

$(function() {
  $('#column-item-container').on('scroll', function () {
    $('#row-lead-container').scrollTop($(this).scrollTop());
  });

  $('#column-item-container').on('scroll', function () {
    $('#column-lead-container').scrollLeft($(this).scrollLeft());
  });
});

我试着弄清楚脚本是否仍然存在以设置超时1000ms发送一些到控制台,这很好。我看起来绑定不再起作用了。 一些建议来解决这个问题?谢谢!

1 个答案:

答案 0 :(得分:2)

可能会发生此问题,因为大多数第三方库或自定义代码都在文档就绪事件上初始化。这就是它第一次工作的原因。一旦你导航到另一个页面并返回同一页面,角度不重新加载页面,它只是渲染html部分和文档就绪事件不会激发。

<强>解决方案

  • 当您的页面打开时绑定事件,而不是文档就绪。
  • 你可以制定一个指令来绑定滚动事件,指令总是在dom元素绑定时绑定事件,它不依赖于文档就绪事件。