Javascript 如何在Angular中重新执行外部脚本?
我有一个外部js文件,其中包含一系列用于用户界面的jQuery方法。但是,Angular router是异步的,因此其他页面上的用户界面元素不能由脚本正确呈现,因为它们在DOM中还不存在 以前,我从脚本中挑选了一些方法,并将它们添加到一个名为Javascript 如何在Angular中重新执行外部脚本?,javascript,jquery,angular,typescript,Javascript,Jquery,Angular,Typescript,我有一个外部js文件,其中包含一系列用于用户界面的jQuery方法。但是,Angular router是异步的,因此其他页面上的用户界面元素不能由脚本正确呈现,因为它们在DOM中还不存在 以前,我从脚本中挑选了一些方法,并将它们添加到一个名为rerender的方法中,但现在这种方法变得杂乱无章 我的问题是看是否有办法在rerender方法中再次加载和执行整个脚本?您可以导入外部脚本。在构造函数内执行此操作: constructor() { System.import('script-lo
rerender
的方法中,但现在这种方法变得杂乱无章
我的问题是看是否有办法在
rerender
方法中再次加载和执行整个脚本?您可以导入外部脚本。在构造函数内执行此操作:
constructor() {
System.import('script-loader!bower_components/fullcalendar/dist/fullcalendar.min.js').then(()=>{
this.render(); // Do whatever, for demonstration I call a render() method
})
}
确保在您的自定义打字中
已声明系统
:
declare let System: SystemJS;
interface SystemJS {
import: (path?: string) => Promise<any>;
}
interface GlobalEnvironment {
SystemJS: SystemJS;
System: SystemJS;
}
我使用的是Angular CLI,据我所知,它不使用系统,但我可能错了。你能用Angular CLI验证一下吗?它使用它。我也是DIt似乎不起作用。导入正在执行,但据我所知,脚本不起作用。请检查您的自定义键入是否已声明
系统
,如我在更新的答案中所述。并在控制台中检查脚本是否正在加载。很好,它可以工作。只是有一个不同页面的bug。
require('bootstrap/js/tooltip.js'); // For example