猿问

如何以角度动态加载外部脚本?

如何以角度动态加载外部脚本?

我有一个模块,它将外部库与附加逻辑一起组件化,而不添加<script>标记直接插入index.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 {...}

我注意到importby ES6规范是静态的,在类型转换过程中解析,而不是在运行时。

无论如何,为了使其可配置,文件js将从CDN或本地文件夹加载吗?如何告诉角2动态加载脚本?


Qyouu
浏览 354回答 3
3回答

侃侃尔雅

如果您使用的是system.js,则可以使用System.import()在运行时:export&nbsp;class&nbsp;MyAppComponent&nbsp;{ &nbsp;&nbsp;constructor(){ &nbsp;&nbsp;&nbsp;&nbsp;System.import('path/to/your/module').then(refToLoadedModule&nbsp;=>&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;refToLoadedModule.someFunction(); &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;);}如果您使用的是webpack,则可以充分利用其健壮的代码拆分支持。require.ensure&nbsp;:export&nbsp;class&nbsp;MyAppComponent&nbsp;{ &nbsp;&nbsp;constructor()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;require.ensure(['path/to/your/module'],&nbsp;require&nbsp;=>&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;yourModule&nbsp;=&nbsp;require('path/to/your/module'); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yourModule.someFunction(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});&nbsp; &nbsp;&nbsp;}}
随时随地看视频慕课网APP
我要回答