您的位置:首页 > Web前端 > JavaScript

angular js 根据条件决定是否引入script标签

2017-02-15 14:37 274 查看
工作中遇到了一个小问题,要根据接口的值来决定是否引入js文件,有3个想法

1 控制script标签显示隐藏。根据接口传来的值,来决定元素显示隐藏,从而决定是否引入js,但是尽管ng-show 已经为false,但依然引入了,所以并没起作用。

至于原因,我猜测可能是因为虽然script标签显示隐藏了,但只是界面效果,元素依然存在。

2 鉴于第一条路走不通,我在想控制ng-if是否好用,然而也不如理想,浏览器报错。

3 那只好用原生js来做,给script标签加class或id,通过接口的值来选择元素即document.querySelector(' ),最后决定是否给该script标签加src,此la方法好用。

可以看出,用angular js 是很简单,但有时效果并不好实现,只能换用原生js了。

但到后来要做中英翻译,需要根据条件判断是否要引入js的同时,还要根据中英文加载不同的js.我就想到了动态创建script 标签,加不同src。

显然,对于强大的谷歌没问题,但是后来我就发现对IE来说,尽管控制台显示显示加上了script标签,加了src,但html里死活没有,我一直纠结于IE的机制,一直尝试,没办法的情况下只好求助大神。

大神终究是大神,完美。换条路走,将中英文判断写在了引入的js中,这样就不用动态创建script标签,直接在项目中引入就好了。这个问题被很好的避免了。

当然这个问题终归就不是来根据接口值来判断引入js的问题了,当然这也是个过程,毕竟前期给的src 还是一个js文件地址,我们也不好改人家的内容,最后干脆我们将代码复制拿到了本地,这个在js中改就好了。所以总结就是以后最好别动态创建script,对IE这种浏览器来说,可能有多种因素会影响,做判断最好还是在js中进行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: