Javascript 如何在角度2加载后加载外部脚本
我有一个动态导航栏,可以从API获取数据 问题是导航栏中的列表项切换不一致。它有时有效,但大部分时间无效 控制台窗口中没有脚本错误,它是干净的 导航面板切换的脚本来自Metronic模板本身,位于名为layout.js的文件中 我怀疑这是因为layout.js有时在DOM中角度渲染之前加载。在这种情况下,开关不能正常工作 有什么建议吗Javascript 如何在角度2加载后加载外部脚本,javascript,asp.net-mvc,angular,api,metronic,Javascript,Asp.net Mvc,Angular,Api,Metronic,我有一个动态导航栏,可以从API获取数据 问题是导航栏中的列表项切换不一致。它有时有效,但大部分时间无效 控制台窗口中没有脚本错误,它是干净的 导航面板切换的脚本来自Metronic模板本身,位于名为layout.js的文件中 我怀疑这是因为layout.js有时在DOM中角度渲染之前加载。在这种情况下,开关不能正常工作 有什么建议吗 System.import('app').catch(函数(err){console.error(err);}); @**@ 试试这个: 从@angular/
System.import('app').catch(函数(err){console.error(err);});
@**@
试试这个:
从@angular/Core导入AfterViewInit并实现其功能
确保在中的应用程序脚本中引用了layout.js
在component.ts中,按如下方式导入layout.js:
import {layout} from 'file/location/layout.js';
编辑layout.js文件,将其当前代码包装为:
var extJs = (function() {
return{
getExtJs: function() {
//js code goes here
}
}
回到组件中,声明一个引用layout.js中的变量:
declare var extJs: any;
然后在视图完成加载后调用layout.js函数:
ngAfterViewInit(): void {
extJs.getExtJs();
}
您是否尝试将所有脚本文件放入index.html中?是的,运气不好:(
ngAfterViewInit(): void {
extJs.getExtJs();
}