注:js文件中的方法要写在一个对象里(具体原因正在探索...)
2.在angular.json文件中找到scripts配置js文件路径
3.在tsconfig.json文件中加入allowJs:true
4.在src文件下新建typings.d.ts文件,用来定义js文件中的静态类型
5.第四步相当于全局引入(自己理解的,不知道这样描述准确否),如果只想要在所需的组件里使用,即在组件的ts文件中单独引入
6.最后调用js文件中的方法即可
本文实例讲述了javascript实现动态导入js与css等静态资源文件的方法。分享给大家供大家参考。具体实现方法如下:/**
*
动态导入静态资源文件js/css
*/
var
$import
=
function(){
return
function(rId,
res,
callback){
if(res
&&
'string'
==
typeof
res){
if(rId){
if($($('#'
+
rId),
$('head')).length>0){
return
}
}
//加载资源文件
var
sType
=
res.substring(res.lastIndexOf('.')
+
1)
//
支持js/css
if(sType
&&
('js'
==
sType
||
'css'
==
sType)){
var
isScript
=
(sType
==
'js')
var
tag
=
isScript
?
'script'
:
'link'
var
head
=
document.getElementsByTagName('head')[0]
//
创建节点
var
linkScript
=
document.createElement(tag)
linkScript.type
=
isScript
?
'text/javascript'
:
'text/css'
linkScript.charset
=
'UTF-8'
if(!isScript){
linkScript.rel
=
'stylesheet'
}
isScript
?
linkScript.src
=
res
:
linkScript.href
=
res
if(callback
&&
'function'
==
typeof
callback){
if
(linkScript.addEventListener){
linkScript.addEventListener('load',
function(){
callback.call()
},
false)
}
else
if
(linkScript.attachEvent)
{
linkScript.attachEvent('onreadystatechange',
function(){
var
target
=
window.event.srcElement
if
(target.readyState
==
'complete')
{
callback.call()
}
})
}
}
head.appendChild(linkScript)
}
}
}
}()
希望本文所述对大家的javascript程序设计有所帮助。
静态资源文件放入public文件夹下(类似cli2里面的static文件夹),打包时不会被wenpack处理,输出文件在dist文件夹下。
在index.html中通过
<script src="<%= BASE_URL %>clipboard.min.js"></script>
参考
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
可以看到项目中ico图标就是通过这种方式引入!!
public文件夹下文件是不被处理的,所以我们可以创建一个config.js文件
config.js
在index.html中引入
使用
遇到的问题,修改打包后的config.js文件,值不更新
排查方式:
1.先确认config.js文件是否更新,浏览器的缓存可能会影响
2.可以修改js文件名,比如加上hash值,config.hashxxx.js,在index.html引入的地方也要对应修改
综上
本地测试ok