<分区>
我的项目中有很多 JS 文件。我想在加载特定模块或组件时加载它们,而不是在应用程序启动时加载它们。
如何做到这一点?
目前,我正在将它们加载到 index.html
中。另一种方法是将它们添加到 angular-cli.json
中。但是这两种方式都会在启动时加载 JS 文件。但是,我需要它们在特定页面或模块运行时加载。
标签 angular
<分区>
我的项目中有很多 JS 文件。我想在加载特定模块或组件时加载它们,而不是在应用程序启动时加载它们。
如何做到这一点?
目前,我正在将它们加载到 index.html
中。另一种方法是将它们添加到 angular-cli.json
中。但是这两种方式都会在启动时加载 JS 文件。但是,我需要它们在特定页面或模块运行时加载。
最佳答案
只需编写一个普通的脚本加载器:
public loadScript() {
let body = <HTMLDivElement> document.body;
let script = document.createElement('script');
script.innerHTML = '';
script.src = 'url';
script.async = true;
script.defer = true;
body.appendChild(script);
}
然后在任何你想要的地方调用它:
export class MyComponent{
ngOnInit(){
this.loadScript();
}
}
但是如果这些文件是 Typescript 文件,您也可以通过多种方式延迟加载它们:
1- 使用默认的模块级延迟加载
2- 使用 webpack 的 require
3- 使用 SystemJs 模块加载器
关于angular - 在组件级别加载 JS 脚本(不是在启动时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45861526/
相关文章:
angular - angularfire2/auth signOut 后如何断开与 Google 身份验证的连接?
Angular Material Tree 不显示填充数组的子元素
javascript - 想要在 Angular 2 的 {{}} 中添加两个值
angular - 如何在 Ionic 2 中将数据从一个页面传递到另一个页面以进行导航
javascript - 如何将用户ID从浏览器传递到 Protractor ?
javascript - 如何在 ngFor 中动态突出显示文本
javascript - 如何将 Zoom Chart 与 Angular 2 集成