1
我有一个用于用户界面的一堆jQuery方法的外部js文件。但是,Angular路由器是异步的,所以其他页面上的用户界面元素不能被脚本正确渲染,因为它们还不存在于DOM中。如何在Angular中重新执行外部脚本?
以前,我是樱桃采摘脚本中的一些方法,并将它们添加到名为rerender
的方法,但这变得混乱。
我的问题是看看是否有方法在rerender
方法中再次加载和执行整个脚本?
我有一个用于用户界面的一堆jQuery方法的外部js文件。但是,Angular路由器是异步的,所以其他页面上的用户界面元素不能被脚本正确渲染,因为它们还不存在于DOM中。如何在Angular中重新执行外部脚本?
以前,我是樱桃采摘脚本中的一些方法,并将它们添加到名为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
})
}
请确保您custom-typings
你声明System
:
declare let System: SystemJS;
interface SystemJS {
import: (path?: string) => Promise<any>;
}
interface GlobalEnvironment {
SystemJS: SystemJS;
System: SystemJS;
}
选项2:
或者,你可以把这个到后您的模块进口报表:
require('bootstrap/js/tooltip.js'); // For example
我正在使用Angular CLI,根据我的知识它不使用System,但我可能是错的。你能用Angular CLI验证吗? – wilsonhobbs
它使用它。我也有Angular-CLI! :D – SrAxi
它似乎没有工作。导入正在执行,但脚本不在我所知的范围内。 – wilsonhobbs