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中进行。
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中进行。
相关文章推荐
- (小技巧)根据条件决定Validator 是否可用
- 根据条件决定是否为input设置只读属性
- a 标签中加 onclick事件,根据事件中的校验情况来决定是否执行a标签的链接
- element验证中根据条件决定是否是必填项
- iOS:Case.根据条件是否加载某控件
- 根据2个条件判断集合里面是否存在元素,用拉姆达表达式
- Android根据用户设置决定是否在开机时启动应用程序
- ExtJs RadioGroup根据选择的值决定某些表单是否显示
- a标签根据js返回值判断页面是否跳转
- Android根据用户设置决定是否在开机时启动应用程序
- 这个网站的的,首页有特点。它能根据浏览器是否支持HTML5或者是Silverlight,来决定是启用HTML5的Video还是Silverlight播放视频。
- JS动态引入js,CSS——动态创建script/link/style标签
- 根据角色决定是否显示或者启用控件
- 根据当前位置是否有图片决定,该条目的类型是什么
- 判断<script><link>等标签src 或href内容是否加载完成
- 表单提交前根据用户的选择决定是否提交
- Android根据用户设置决定是否在开机时是否启动
- 考试系统 根据是否补考等条件验证
- MFC弹出对话框之前先进行条件判断以决定是否弹出对话框
- IOS开发中如何判断程序第一次启动(根据判断结果决定是否显示新手操作引导)