angular

1简述angularjs的优缺点?

优点:

1.模板功能强大丰富,并且是声明式的,自带了丰富的Angular指令;

2.是一个比较完善的前端MV*框架,包含模板,数据双向绑定,路由,模块化,服务,过滤器,依赖注入等所有功能;

3.自定义Directive,比jQuery插件还灵活,但是需要深入了解Directive的一些特性,简单的封装容易,复杂一点官方没有提供详细的介绍文档,我们可以通过阅读源代码来找到某些我们需要的东西,如:在directive使用 $parse;

4.ng模块化比较大胆的引入了Java的一些东西(依赖注入),能够很容易的写出可复用的代码,对于敏捷开发的团队来说非常有帮助,我们的项目从上线到目前,UI变化很大,在摸索中迭代产品,但是js的代码基本上很少改动。

5. 补充:Angular支持单元测试和e2e-testing。

缺点:

1.验证功能错误信息显示比较薄弱,需要写很多模板标签,没有jQuery Validate方便,所以我们自己封装了验证的错误信息提示,详细参考why520crazy/w5c-validator-angular · GitHub;

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等模块独立出去,让用户自己去选择。

7:内容网站,需要SEO的。(SEO目前也有了prerender解决方案) https//prerender.io

8:交互频繁的,如游戏之类交互体验网站。

9,太过于简单的页面。

angularjs组件之间如何通信

Angularjs为在scope中为我们提供了冒泡和隧道机制,$broadcast会把事件广播给所有子controller,而$emit则会将事件冒泡传递给父controller,$on则是angularjs的事件注册函数

指令scope的绑定策略

1、@:把当前的属性作为字符串传递。你还可以绑定来自外层的scope的值,在属性值中插入{{}}即可。下面是代码。

2、“ = ”  : 与父scope中的属性进行双向绑定

3、“ & ”:传递来自父scope中的函数、稍后调用

8谈谈你对angularjs 作用域的理解

1$rootScope是根作用域,controller 作用域$scope继承$rootScope。所有的controller都可以访问$rootScope

2父子controller之间作用域$scope 也存在继承关系,子controller可以访问父controller作用域里的值

3指令directive也存在scope,默认值false,跟controller作用域共用一个作用域,如果为true scope继承controller $scope 如果scope为{}则指令作用域是独立作用域

你可能感兴趣的:(angular)