【发布时间】:2020-03-05 00:43:34
【问题描述】:
Before refreshing the page
After refreshing the page
自从过去 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);
}
尝试使用此代码在 home 组件中加载所有 js,但仍然发生相同的情况,我必须刷新整个页面。尝试在 index.html 中使用 js,但没有成功。
【问题讨论】:
-
您必须在
app.component.ts文件中链接这些脚本。在您的app.component.ts中尝试此方法。 -
感谢 Farhat 的回复,我已经尝试了所有方法,例如在 app.component.ts 中添加所有脚本,然后在 index.html 中添加,但它们都不起作用。
-
然后尝试将此文件包含在
angular.json中。有关更多详细信息,请访问此link。"src/assets/js/scripts/pages/dashboard-lite.js" -
如果你看到这是我当前的 angular.json "src/assets/vendors/js/ui/screenfull.min.js",
"src/assets/vendors/js/extensions/ pace.min.js",
"src/assets/vendors/js/charts/chart.min.js",
"src/assets/js/core/app-menu.js",
“src/assets/js/core/app.js”
和dashboard-lte.js我只在主页组件中使用,因为我只想要主页上的图表,但仍然无法工作 -
好的,现在只需在
app.js之后添加一个文件。"src/assets/js/scripts/pages/dashboard-lite.js"。重新运行你的 Angular 项目并检查它是否有效。
标签: angular typescript angular6 angular-routing