Javascript 如何在角度2加载后加载外部脚本

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/

我有一个动态导航栏,可以从API获取数据

问题是导航栏中的列表项切换不一致。它有时有效,但大部分时间无效

控制台窗口中没有脚本错误,它是干净的

导航面板切换的脚本来自Metronic模板本身,位于名为layout.js的文件中

我怀疑这是因为layout.js有时在DOM中角度渲染之前加载。在这种情况下,开关不能正常工作

有什么建议吗


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();
  }