AngularJS的优缺点
优点:
1. 模板功能强大丰富,并且是声明式的,自带了丰富的Angular指令;
2. 是一个比较完善的前端MV*框架,包含模板,数据双向绑定,路由,模块化,服务,过滤器,依赖注入等所有功能;
3. 自定义Directive,比jQuery插件还灵活,但是需要深入了解Directive的一些特性,简单的封装容易,复杂一点官方没有提供详细的介绍文档,我们可以通过阅读源代码来找到某些我们需要的东西,如:在directive使用 $parse;
4. ng模块化比较大胆的引入了Java的一些东西(依赖注入),能够很容易的写出可复用的代码,对于敏捷开发的团队来说非常有帮助,我们的项目从上线到目前,UI变化很大,在摸索中迭代产品,但是js的代码基本上很少改动。
缺点:
1. 验证功能错误信息显示比较薄弱,需要写很多模板标签,没有jQuery Validate方便,所以我们自己封装了验证的错误信息提示;
2. ngView只能有一个,不能嵌套多个视图,虽然有 angular-ui/ui-router · GitHub 解决,但是貌似ui-router 对于URL的控制不是很灵活,必须是嵌套式的(也许我没有深入了解或者新版本有改进);
3. 对于特别复杂的应用场景,貌似性能有点问题,特别是在Windows下使用chrome浏览器,不知道是内存泄漏了还是什么其他问题,没有找到好的解决方案,奇怪的是在IE10下反而很快,对此还在观察中;
4. 这次从1.0.X升级到1.2.X,貌似有比较大的调整,没有完美兼容低版本,升级之后可能会导致一个兼容性的BUG,具体详细信息参考官方文档 AngularJS ,对应的中文版本:Angular 1.0到1.2 迁移指南
5. ng提倡在控制器里面不要有操作DOM的代码,对于一些jQuery 插件的使用,如果想不破坏代码的整洁性,需要写一些directive去封装插件,但是现在有很多插件的版本已经支持Angular了,如:jQuery File Upload Demo
6. Angular 太笨重了,没有让用户选择一个轻量级的版本,当然1.2.X后,Angular也在做一些更改,比如把route,animate等模块独立出去,让用户自己去选择。
当然使用的人多才会暴露更多的问题,一起为这些问题寻找解决方案是一个社区的良性趋势,选择Angular,的确使我们的开发效率大大提高
使用AngularJS创建应用的5个框架:
1. AngularUI Bootstrap
这一框架是基于目前非常流行的前端框架Bootstrap的,它包含了一系列的Bootstrap组件,比如Carousel、Alert、Collapse、Rating和TimePicker等。所有的这些组件都可以移植到AngularJS,支持AngularJS指令和常规的HTML元素。如果你很喜欢使用Bootstrap,那么这个框架就非常地适合你。
2. Angular Foundation
这个框架同样可以被移植来使用AngularJS,它改变了Foundation组件,使之适应AngularJS的指令和HTML元素,因此你可以只通过HTML创建你的Web应用。这一点,会让很多人喜欢上这个框架,你可以从它的GitHub主页上下载更新。
3. Ionic Framework
Ionic包含了一些可靠的模块,可以让移动端的开发变得更容易、更快速。这一框架针对移动端的体验做了优化,使用Ionic框架,可以有效利用AngularJs的特性,极大的提供HTML5应用开发效率,质量,模块化程度。因此,如果你非常关心性能和速度的问题,那么这个框架就很适合。
4. Mobile Angular UI
正和它的名字一样,这是一款HTML5 移动端 的UI 框架,允许使用 Angular JS 和 Bootstrap 3来开发移动端应用。另外,它可以通过增加CSS,帮助将一个Web app转为移动端的版本。
5. UI Grid
Grid控件不仅可以显示数据,并对数据提供了丰富的支持。它可能是你在AngularJS中处理表格最好的方式。