重新审视“不唐突”的javaScript
在angular教程中,很容易就能在html里看见这样的代码:
<button ng-click="count = count + 1" ng-init="count=0">OK</button>
<input type="text" ng-change="myFunc()" ng-model="myValue" />
嗯?不是说好的,没事别用内联样式和事件吗?
印象中,在刚入门的时候,就被前辈们告知,不要使用内联事件处理程序。理由不外乎如下:
- 不是所有的浏览器都支持javascript。
- 一些浏览器的工作方式并不一样。比如视力障碍人员使用的屏幕阅读器。
- javascript在不同的平台,工作机制不一样。比如最有个性的IE。需要根据浏览器不同使用不同的事件处理代码
- 内联事件处理程序引用全局命名空间中的函数。当你尝试整合其他库中的同名函数时,它会让你很头疼。
- 这些程序合并了结构和行为,将代码变得难以维护、扩展和理解。
但是在angular中,这些问题被重新审视。
嗯,时代已经改变。关于1,这样的浏览器已经被扫进历史垃圾堆。
关于3,angular已处理好浏览器的差异,保证行为一致。
关于4,angular不会在全局命名空间操作。指定的表达式只能访问元素控制器作用域内的函数和数据。
关于5,angular在控制器中,只编写包含业务逻辑的代码,而不必引用DOM、或者DOM事件处理程序。
事实是,angular是一款基于javascript的超赞的框架,(懒惰一定是科技发展的动力之一)
MVC、模块化、自动化双向数据绑定、语义化标签、依赖注入等等,谁用谁知道ԅ(¯㉨¯ԅ)