第三第四周的笔记
1.比parseInt更好的字符串转换数字的写法,var num=str - 0;
2.window有一个Location对象,包含了与url地址有关的所有信息。
在http://www.baidu.com:8000/aaa/index.html?name=b#666这个地址中
分别是http://协议
www.baidu.com 主机地址(hostname)
8000 端口(port)
/aaa/index.html 路径(pathname)
?name=b 查询值(search)
#666 锚点(hash)
这些属性都保存在location对象中。
url地址变化的时候会触发hrefchange事件,该事件的e对象中只能获取变化前后的整体url地址。
·从一个字符串类型的url地址中提取出单独的路径或锚点部分有两个方法:1.正则表达式 2.动态创建一个a标签,将url赋值给它的href,就可以通过a元素对象的pathname/hash属性直接得到(同上)
3.关于设置百分比需要注意:
父元素必须定高,子元素才能对高度设置百分比。宽度没有这个限制。
例外是绝对定位以后,即使父元素不定高子元素依然可以获取到父元素的百分比高度。
padding margin之类都是以父元素的宽度作参照,height:10%其实是父元素宽度的10%而不是高度的10%
因此即使父元素高度没有声明,设置依然是有效果的。
参考:http://blog.csdn.net/javaloveiphone/article/details/51098972
对body,html设置height:100%只适用于每一层父元素都有设置百分比高度的情况,如果父元素只是根据子元素堆叠而被撑开,那么这个方法无效。
4.M-module V-view C-controller
Angular js 中,M是一个中间人。html元素和数据模型可以实现双向绑定,于是js代码中controller只需操控数据模型,数据模型中的数据变化会自动同步到界面,因此避开了以前的DOM操作。
5.Anglarjs的filter可以完成格式化和筛选的功能,用filter来进行格式化的优点是不破坏原本的数据,如将用户名y123格式化成y***,不用Angular的话就必须把真实id绑定在元素上,否则修改后就不能获取到原先的id了。比如想要让用户名为y123的元素高亮显示,就会发现定位到这个元素很困难。
但是使用Angular的话,原先的数据依然好好地保存在模型中,并且基于双向绑定的特性,可以轻松定位到。
Angular相较于DOM操作有很多便捷的地方,但它的一大缺点是对于DOM事件,它无法再获得e对象,也无法获得发生事件的元素。必须用一个标记在模型数据中定位到发生事件的元素。比如用DOM可以很轻松地实现“点谁谁消失”的效果,事件函数中只需要一句话 $(this).hide()(基于jQ)。但是ng-事件命令并不是一个事件函数,它不知道谁发生了点击。只能通过传参的方式将被点元素的id/序列号之类的标记属性告诉事件命令执行的函数,它才能进行操作。
6.使用Angular路由记得把route.js加载进去。模块化编程时可以在各个模块中配置自己的路由。模板html可以用script包装后直接放在主文件中,使用id作为templateUrl。script的type为text/ng-template