2017-09-21 76 views
0

我嘗試通過angular-cli加載腳本來同步兩個div。當頁面首次加載時,腳本工作正常。我通過導航改變路線。當回到第一頁時,腳本不再工作。Angular 4 JS腳本在更改路由後不工作

角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()); 
    }); 
}); 

我揣摩如果腳本仍然存在設置超時時間1000毫秒送了一些安慰,工作正常。我看起來像綁定不工作了。 一些建議來解決這個問題?謝謝!

回答

2

此問題可能發生是因爲大多數第三方庫或自定義代碼在文檔準備事件中初始化。所以這就是爲什麼它第一次工作。一旦你導航到另一個頁面,並回到同一頁面,角度不重新加載頁面,它只是渲染HTML部分和文檔就緒事件不會觸發。

解決方案

  • 綁定事件,當你的頁面打開,而不是在文件準備好。
  • 你可以做一個指令來綁定滾動事件,當dom元素綁定時,指令將總是綁定事件,它不依賴於文檔就緒事件。
+0

通過創建自定義類型並在ngOnInit中調用綁定方法來解決此問題。 – mnlfischer

+0

@Kishan Mundha我正在與角度與PHP一起工作。我試過這種方法不適合我。我認爲我的方式是錯誤的。請解釋指令綁定事件的步驟。 –

+0

謝謝....我得到了解決方案 –