发表于: 2017-06-08 00:01:04
1 1128
今天完成的事情:
解决了后台侧边栏js失效的bug
解决了ng-message报错的bug
修改了ng-message中正则匹配的错误。
明天计划的事情:
计划解决必须在不同模板中重新定义ng-app的问题。
准备小课堂。
配置服务器。
遇到的问题:
1,侧边栏失效bug解决方法:
开始我用懒加载加载backStage.js,发现此文件失效,后来通过查看f12的network页面发现懒加载实际上是把相应的文件放在了模板html文件之前加载,js先于html加载,导致js获取不到htmlDOM从而失效。之前理解有误,把懒加载理解成了“后加载”。
然后我把js文件放在了模板html文件中的最后一行,使js在html后加载,再在浏览器中ctrl+f5强制刷新页面,发现js仍然失效。后经过师兄的提醒才发现页面中使用的是缓存文件,ctrl+f5并不能清除缓存,必须得在network面板中右键清除缓存或右键刷新按钮清除缓存。ctrl+f5不能清除路由页面的缓存。
2,ng-message报错的bug:
查找了很久的原因后,也是根据师兄才找到bug:ng-messages的标签必须使用div,之前我用了p标签,但是一直报ngmessage未定义的bug,不知道为什么一定要用div标签,可能是ne-messages的语法要求如此吧。
收获:
1,ng-message的正则匹配,可以有两种写法:
ng-pattern="/^[0-9a-zA-Z\u4e00-\u9fa5_]{3,16}$/"
pattern="^[0-9a-zA-Z\u4e00-\u9fa5_]{3,16}$"
方法二是html5中表单的一个新属性。注意两种写法不同,ng-pattern有//包围,pattern没有。
2,正则表达式:
之前对正则表达式的理解有误,今天重新看了一下发现之前的匹配写错了才造成了几天前的问题。
语法:
a 匹配字符a
ab 匹配字符ab
a|b 匹配字符a或b
[ab] 匹配字符a或b
[a-d] 匹配字符a或b或c或d
[a-d][0-3] 匹配两个字符,
[^a-d] 匹配单个字符,除a或b或c或d
[a-d]{4,10} 匹配字符数量4-10,每个字符的范围a-d
ab{3} 匹配abbb
(ab){3} 匹配ababab
ab* 重复b零次或更多次
ab+ 重复b一次或更多次
ab? 重复b零次或一次
\s 匹配一个空格
. 除空格外任意一个字符
* 任意长度字符
\babc\b 匹配单词abc,abc前后需是空格。
\u4e00-\u9fa5 匹配汉字
\w 匹配单词,包含[A-Za-z0-9_]与unicode字符,与计算机的使用环境有关,在汉字环境下等价于
[0-9a-zA-Z\u4e00-\u9fa5_]
一个Ip的匹配方式:
((25[0-5]|2[0-4][0-9]|([0-1]?)\d?\d)\.){3}(25[0-5]|2[0-4][0-9]|([0-1]?)\d?\d)
3,bug的调试:
出了bug,在js的关键节点打上console.log(),看有没有输出,仔细看f12各页面的信息,可以快输找出bug。
评论