我有一个模块,它将外部库与其他逻辑组合在一起,而无需将<script>标记直接添加到索引中.html:

import 'http://external.com/path/file.js'
//import '../js/file.js'

@Component({
    selector: 'my-app',
    template: `
        <script src="http://iknow.com/this/does/not/work/either/file.js"></script>
        <div>Template</div>`
})
export class MyAppComponent {...}

我注意到ES6规范的importBy是静电的,并且在打字脚本转写期间而不是在运行时解析.

是否要使其可配置,以便file.js将从CDN或本地文件夹加载? 如何告诉Angular 2动态加载脚本?

推荐答案

如果您使用的是system.js,则可以在运行时使用System.import():

export class MyAppComponent {
  constructor(){
    System.import('path/to/your/module').then(refToLoadedModule => {
      refToLoadedModule.someFunction();
    }
  );
}

如果您使用的是webpack,您可以充分利用其强大的代码拆分支持,支持require.ensure:

export class MyAppComponent {
  constructor() {
     require.ensure(['path/to/your/module'], require => {
        let yourModule = require('path/to/your/module');
        yourModule.someFunction();
     }); 
  }
}

Javascript相关问答推荐

如何在Node.js中减go 两个日期和时间?

如何制作删除按钮以从列表中删除该项目所属的项目?

更新Reduxstore 中的状态变量,导致整个应用程序出现不必要的重新渲染

为什么我的第二个OnClick Isloading值在TEK查询Mutations 查询中不起作用?

添加/删除时React图像上传重新渲染上传的图像

在时间轴完整日历中显示日期标题

如何编辑代码FlipDown.js倒计时?

Vue:ref不会创建react 性属性

如何在RTK上设置轮询,每24小时

在JavaScript中声明自定义内置元素不起作用

使用Java脚本根据按下的按钮更改S文本

如何从Intl.DateTimeFormat中仅获取时区名称?

如何在bslib nav_insert之后更改导航标签的CSS类和样式?

单个HTML中的多个HTML文件

更改预请求脚本中重用的JSON主体变量- Postman

使用js构造一个html<;ath&>元素并不能使其正确呈现

在画布中调整边上反弹框的大小失败

在表单集中保存更改时删除';禁用';

在Odoo中如何以编程方式在POS中添加产品

在Java脚本中录制视频后看不到曲目