AngularJS早些时候有过了解,知道这是一个JS的MVC框架,同类型的框架还有Backbone等。这次是由于项目需要,学习了两天的Angular后开始着手改之前的项目代码,这里大概说一下这一周学习Angular的心得体会吧。
      首相,使用Angular最大的感受就是它的设计思路完全不同于Jquery,jquery更倾向于对Dom的操作;而使用Angular则需要你有一个全局的认识,你必须知道你想要做成什么样子才可以下手去做,所以我感觉ng对前端开发的要求比jquery要高一些。先来看看Angular的一些特点:
      一、MVC模式
      MVC顾名思义:Model-view-Controll设计模式,其实这个有点类似于Java的思想,模型、视图、控制器的分离。但是Angular又有点不同于传统的MVC,严格意义上说它是MVVM(model-view-viewModel)。Model是简单的javascript对象;ViewModel是$scope对象,Angular靠$scope检测状态变化;Controller负责设置初始状态和参数化$scope方法用以控制行为;View是Angular解析渲染后生成的HTML。
      二、数据双向绑定
      这应该算Angular比较特有的属性,概括来说,Angular通过监听变量的变化来实现双向数据绑定。传统技术上,当model改变时,开发与人员需要手动处理DOM元素并将属性反映到变化中。而在Angular中,程序员可以轻轻松松解决这种问题,省掉了很多的代码。
      三、模板
      在Angular中,一个模板就是一个HTML文件。但是HTML的内容扩展了,包含了很多帮助你映射到Model到View的内容。
      四、服务和依赖注入
      Angular服务的作用就是对外提供某个特定的功能。Angular拥有内建的依赖注入(DI)子系统,可以帮助开发人员更容易开发,理解和测试应用。
      五、指令
      指令比较有意思,可以帮助我们做很多的事情。很多的DOM操作,比如增删改查都可以用指令完成。指令自带的link方法有三个参数:scope、element、attrs。通过这三个参数我们可以完成很多功能,这也是我用的比较多的方法。
      对比jquery,两个框架的思路不一样,在进行Angular使用时,面对DOM操作要及时的转变过来,不能总想着获取dom然后进行操作,在ng中操作的应该是变量。通过变量改变视图,通过视图的改变,回馈到变量中,这才是Angular的精髓。