首页 > 解决方案 > 如何以角度重新加载 index.html 的 head 标签内的脚本?

问题描述

我正在寻找很多解决方案,但我找不到一个。

我在. head_ 我在里面写了函数。</body>index.html$(document).ready

当服务器启动时,脚本将起作用。但是在刷新页面之前,当我从不同的组件返回到使用脚本的组件时,脚本将无法工作。

所以我的问题是如何刷新index.html?如果我这样做,整个应用程序都会刷新。如何预防?有什么不同的方法可以一次又一次地重用我的脚本代码吗?请给我一个解决方案。

我尝试jsindex.html. 该时间函数将不会被调用。我尝试在生命周期钩子中编写js代码。AfterViewInit那也没有用。

标签: javascriptangulartypescript

解决方案


我希望你知道 $(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);
}

我建议您分享您的问题陈述,人们会更容易提供适当的解决方案。


推荐阅读