首页 > 解决方案 > 刷新在 Angular 6 中加载的页面后,在路由上不加载外部 js

问题描述

刷新页面之前 刷新页面
后,

我从过去 3 天开始就遇到了这个问题,尝试了很多方法,但没有一个适合我。

问题是我正在从 angular.json 加载外部 js。它是我使用的所有插件的常见 js,例如侧边栏、仪表板图表、菜单切换等。它在第一次页面加载时正常工作,但是当我通过组件到组件或模块到组件将页面路由时,js在我不刷新页面之前不起作用。

如果我在 chrome 中打开网络选项卡开发人员工具中的脚本,我可以看到我的 js,但是一旦我刷新页面,它仍然没有加载,它可以按照我的需要顺利运行。请指导我如何解决这个问题。对不起语言,我希望你得到我的查询。谢谢

ngOnInit() {
 this.loadScript('../assets/js/scripts/pages/dashboard-lite.js');
}
public loadScript(url: string) {
    const body = <HTMLDivElement>document.body;
    const script = document.createElement('script');
    script.innerHTML = '';
    script.src = url;
    script.async = false;
    script.defer = true;
    body.appendChild(script);
  }

尝试使用此代码加载主组件中的所有 js,但仍然发生相同的情况,我必须刷新整个页面。尝试在 index.html 中使用 js,但没有成功。

标签: angulartypescriptangular6angular-routing

解决方案


该文件在运行时加载,因此 URL 应该相对于应用程序的基本 URL,而不是相对于项目结构。这意味着 URL 应该是assets/js/scripts/pages/dashboard-lite.js(即删除前导...)。


推荐阅读