Angular1.x 概念解析

1、AngularJs主要解决的是逻辑问题,实现数据双向绑定,实现modelview的双向刷新,是比较完美的html模板引擎,实现逻辑和view的分离。

2、AngularJs主要适用于单页应用。

3、代码结构清晰,逻辑清晰。

4、编写的时候应该尽量少用其他库和框架,实在不能用angular解决了在考虑使用其他库和框架

5、controller只负责逻辑处理业务逻辑,不要在其中进行dom操作,controllerscope中的变量时可以继承的,普通变量只能继承,不能从子controller改变父controller的中的变量,但是如果变量是对象,那么自controller中对变量的改变,会同时改变父controller中的变量。非父子Controller中要共享数据和函数,采用serviceController中需要进行事件传播采用event bus

6、filter使用在dom上,负责对显示的数据进行格式化;directive使用在dom上,主要用于dom操作;service主要为其他模块提供可注入的服务。

7、Angular的模块使用依赖注入,定义后angular将自动加载并且加载模块。

8、在非scope的作用域中改变scope的变量值,使用$apply()函数进行model的刷新,进而使viewmodel都更新。

9、最先执行的函数是configconfig中只能注入constant类型和provider类型的服务,在config中主要进行一些全局配置和路由。

10、            在依赖的模块都加载完成后会执行run,可在此函数中先行定义一些变量和数据。

11、            有多重方式定义service,其中value定义无法引入其他服务,相当于直接定义一个对象;constant定义同value,并且定义后的其中的值是不能改变的;servicefactoryprovider三者主要是封装不一样,定义的服务概念一样。

12、            支持友好的restful风格的urlget\put\post\delete,提供resource服务来简化资源的处理,有比较完善的promise处理方案。

13、            尽量只在directive中和controller中来使用scope,以免造成代码的混乱。

14、            内部集成了jqlite,来进行dom的操作。

15、            模块定义的时候注入的是模块,controllerservice等中注入的是模块中定义的service,页面中使用的是模块中的filter(在dom上直接使用)、directive(在dom上直接使用)等,只有模块注入了,才能将其内部定义的servicefilterdirective注入;一般来说在app模块定义的时候将所有模块注入,controllerdirective中一般只需要注入servicefilter中不能注入。

 

 

在使用中碰到的问题:

1、对于弹出层要使用独立地址比较复杂,比如说login是一个弹出层,但是又给它配了/login的地址,这种处理起来有些复杂

2、ng-view只能有一个,用其插件ui-angular可以实现多个nv-view

3、版本过于混乱,多个版本api有比较大的差别

4、由于其内部采用全监听模式,每次改动一个model会更新所有的model,当model达到一定数量后,性能上有些吃力

5、animate支持不友好,没有完善的回调模式,animate的性能也不尽人意,有时候需要人为的逻辑控制

6、http中默认会去掉结尾的“/”,这个在每个版本中处理方法不一样


猜你喜欢

转载自blog.51cto.com/13934921/2338130
今日推荐