一、你是怎么理解angular的?
angular是为了客服HTML在构建应用上的不足而设计的
angular是一个为动态web应用设计的结构框架
它能让你使用HTML作为模板语言,通过扩展HTML的语法让你更清楚,简洁地构建你的应用组件
它的创新点在于:利用数据双向绑定和依赖注入,使我们不再写大量代码了,这些全都是通过浏览器端的javascipt实现,这也使得它能够完美地和任何服务器端技术结合
二、angular在实际应用中的优缺点
优点:
1. 模板功能强大丰富,并且是声明式的,自带了丰富的Angular指令;
2. 是一个比较完善的前端mv*框架,包含模板,数据双向绑定,路由,模块化,服务,过滤器,依赖注入等所有功能;
3. 自定义指令(Directive),比 jquery 插件还灵活,但是需要深入了解Directive的一些特性,简单的封装容易,复杂一点官方没有提供详细的介绍文档,我们可以通过阅读源代码来找到某些我们需要的东西,如:在directive使用 $parse;
4. ng模块化比较大胆的引入了Java的一些东西(依赖注入),能够很容易的写出可复用的代码,对于敏捷开发的团队来说非常有帮助,我们的项目从上线到目前,UI变化很大,在摸索中迭代产品,但是js的代码基本上很少改动。
5. 补充:angular支持单元测试和e2e-testing。
缺点:
1. 验证功能错误信息显示比较薄弱,需要写很多模板标签,没有jQuery Validate方便
2. ngView只能有一个,不能嵌套多个视图
3. 对于特别复杂的应用场景,貌似性能有点问题,特别是在Windows下使用chrome浏览器,不知道是内存泄漏了还是什么其他问题,没有找到好的解决方案,奇怪的是在IE10下反而很快,对此还在观察中;
4. 这次从1.0.X升级到1.2.X,貌似有比较大的调整,没有完美兼容低版本,升级之后可能会导致一个兼容性的BUG
5. ng提倡在控制器里面不要有操作DOM的代码,
6. Angular 太笨重了,没有让用户选择一个轻量级的版本,