Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Angular中重新执行外部脚本?_Javascript_Jquery_Angular_Typescript - Fatal编程技术网

Javascript 如何在Angular中重新执行外部脚本?

Javascript 如何在Angular中重新执行外部脚本?,javascript,jquery,angular,typescript,Javascript,Jquery,Angular,Typescript,我有一个外部js文件,其中包含一系列用于用户界面的jQuery方法。但是,Angular router是异步的,因此其他页面上的用户界面元素不能由脚本正确呈现,因为它们在DOM中还不存在 以前,我从脚本中挑选了一些方法,并将它们添加到一个名为rerender的方法中,但现在这种方法变得杂乱无章 我的问题是看是否有办法在rerender方法中再次加载和执行整个脚本?您可以导入外部脚本。在构造函数内执行此操作: constructor() { System.import('script-lo

我有一个外部js文件,其中包含一系列用于用户界面的jQuery方法。但是,Angular router是异步的,因此其他页面上的用户界面元素不能由脚本正确呈现,因为它们在DOM中还不存在

以前,我从脚本中挑选了一些方法,并将它们添加到一个名为
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