Angular.js学习笔记

angular.js核心特性:1、MVC 2、模块化Module 3、指令系统 4、双向数据绑定

基本概念与用法:MVC、模块化与依赖注入、双向数据绑定、指令、Service、Provider、表单

内容简介:Angular.js模块化实现、一个完整的项目结构是什么样的、使用ngRoute进行视图间的路由、模块的切分方式、模块之间的依赖该怎么做?(依赖注入)

双向数据绑定内容简介:取值表达式与ng-bind指令、双向绑定的典型场景-表单、动态切换标签样式、ng-show和ng-hide、ng-class、ng-Animate

MVC

为什么需要MVC?
1、因为代码规模越来越大,不能够一份js代码把所有业务全部写完,所以切分代码是必须的。
2、为了复用,有很多逻辑是一样的。
3、为了后期维护方便,修改一块功能不影响其他功能

MVC只是手段,最终目的还是模块化和复用。

前端MVC的困难?
1、操作DOM的代码必须等待整个页面全部加载完成
2、多个js文件如果出现相互依赖,程序员要自己解决
3、js原型继承也给前端编程造成许多困难

Controller使用过程中的注意点:
1、不要试图去复用Controller一个控制器一般只负责一小块视图
2、不要再Controller中操作DOM,这不是控制器的职责
3、不要在Controller里面做数据格式化,ng有很好的表单控件
4、不要在Controller里面做数据过滤操作,ng有filter服务
5、一般来说,Controller是不会互相调用的,控制器之间的交互会通过事件进行。

双向数据绑定三个问题(来自慕课网大漠)
1、为什么其他所有前端框架都不实现双向数据绑定?
2、如果让你来实现双向数据绑定,你会怎么实现?
3、双向数据绑定有什么潜在的缺点吗?

我们需要什么样的前端开发环境:

  • 代码编辑工具:sublime、webstorm
  • 断点调试工具:angularJS Batarang(chrome插件)
  • 版本管理工具:git
  • 代码合并和混淆工具:grunt
  • 依赖管理工具:bower
  • 单元测试工具:karma jasmine
  • 集成测试工具:Protractor(专为angular定制)

搭建自动化的前端开发、测试、调试环境

jasmine

  • describe(string,function)这个函数表示分组,也就是一组测试用例
  • it(string,function)这个函数表示测试用例
  • expect(expression)表示期望expression这个表达式具有某个值或者具有某种行为。
  • to***(arg)这个函数表示匹配
Angular.js学习笔记_第1张图片
Angular.js学习笔记_第2张图片

你可能感兴趣的:(Angular.js学习笔记)