簡體   English   中英

如何以角度重新加載index.html頭標記中存在的腳本?

[英]How to reload the script present inside head tag of index.html in angular?

我正在搜索許多解決方案,但找不到。

我已經在index.htmlhead標簽(也在</body>上面)中寫了一些腳本。 我已經在其中編寫了$(document).ready函數。

當服務器啟動時,腳本將起作用。 但是,當我從另一個組件返回到使用腳本的組件時,該腳本將無法工作,直到刷新頁面為止。

所以我的問題是如何刷新index.html 如果這樣做,整個應用程序將得到刷新。 怎么預防呢? 有沒有其他方法可以重復使用我的腳本代碼? 請給我一個解決方案。

我嘗試在index.html導入外部js文件。 該時間函數將不會被調用。 我嘗試在AfterViewInit生命周期掛鈎中編寫js代碼。 那也沒有用。

希望您知道$(document).ready的工作方式。 一旦您的文檔准備就緒,就會在加載/刷新/重新加載頁面時調用它。

現在出現了問題,腳本到底在做什么? 如果這是設置某些全局范圍的內容,則應抽象出服務中邏輯,並在要使用的每個組件中調用它。 在加載組件之前,請確保要初始化/調用腳本/邏輯。

export class DataService {

  constructor() { }

  myData() {
    return 'This is my data!';
  }

}

export class AppComponent {

  constructor(private dataService:DataService) {

  }

  ngOnInit() {
    this.dataService.myData();
  }

}

或者,如果它像后台線程一樣一直在后台運行,那么您可以在AppComponent / ContainerComponent中使用setInterval api ,它將繼續在后台運行。 這樣,您的腳本將始終處於上下文中。

ngOnInit() {
  this.id = setInterval(() => {
    this.Init(); 
  }, 1000);
}

我建議您分享有關您的問題的陳述,這樣人們就可以更輕松地提供適當的解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM