流行框架angularjs

1.angularjs优势

  • 帮助我们快速构建当页面应用
  • Angular自身有很多颠覆性的特性 改变了前端的编码方式 简化了我们的操作

2.angularjs是什么?

  • 一款非常优秀的前端高级JS框架
  • 由谷歌团队负责开发维护

3.框架与库

1
<input type="text" id="inp">
1
2
3
4
5
document.getElementById('inp').value;
$('#inp').val();
<input type="text" ng-model="val">
  • 无论是angularjs还是jQuery都是用原生JS封装的
  • 库:
    • 对代码进行封装 调用封装的方法 简化操作
      • jquery 针对DOM操作
      • requirejs js模块化
  • 框架:
    • 虽然也是调用封装的方法
    • 但是更多的框架会提供代码书写的规则
    • 我们要按照规则去写代码 框架会帮我们实现相应的功能
  • 框架与库区别:
    • 范围不同:库仅仅针对某一个方面,框架包含的范围比较广
    • 库只是调用封装好的方法,框架会提供代码书写规则

4.angularjs核心思想

  • write less do more(和jquery一样)
  • 其核心是通过指令扩展了HTML,通过表达式绑定数据到HTML。
  • Angular不推崇DOM操作,也就是说在NG中几乎找不到任何的DOM操作
  • 一切操作以数据为中心,用数据驱动DOM

5.获取angularjs的方式

6.Angular快速入门 (hello world)

  • 实现一个最基本的双向数据绑定的例子
  • 通过例子介绍基本的指令及表达式
    • 在使用了angularjsjs的页面,以ng-开头的属性,都可以称之为指令
    • ng-app
      • 告诉angularjsjs它在页面中所要控制的范围
      • 页面加载完成angularjs会自动在页面中查找这个指令
      • 如果页面中没有这个指令,angularjs将不会启动
      • 告诉angularjs当前页面由哪一个模块来管理
    • ng-model
      • 实现双向数据绑定(必须是表单元素)
    • ng-click
      • 点击事件(和原生JS中的onclick事件作用一样)
    • ng-init
      • 初始化数据
    • 表达式介绍
      • 双大括号的形式称之为插值表达式
      • 在表达式中可以写ng中的变量
      • 可以显示字符串(显示的内容用引号包裹起来)
      • 在表达式中可以进行计算
      • 可以在表达式中写三元运算符
      • 执行angularjs函数
  • 数据双向绑定(在页面html的表单上修改数据后,js根据对表单的事件监听,立马进行数据的修改,然后再传递到页面进行数据的更新)
    • 数据:angularjs中的变量
    • 双向: html js
    • html=>js js=>html
  • 实现双向数据绑定的条件
    • 1.必须是表单元素
    • 2.在表单元素身上写 ng-model指令

7.angularjs模块化开发

  • 模块化开发带来的好处
    • 方便管理, 复用,后期维护方便
    • 解决代码冲突,方便多人协作开发
  • 分析模块和控制器与页面之间的关系
  • 定义模块的语法规则
  • 定义模块时第二个参数加与不加的区别
    • 加第二个参数是创建模块
    • 不加第二个参数是获取模块
  • 报错信息分析

    • Module ‘myApp’ is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.
    • ‘myApp’ 这个模块是不可获取的! 你要么拼写错误 要么忘了加在他 你要确保一个有效的模块 做为了第二个参数的依赖
  • 模块依赖

    • 主模块依赖了其他模块,就相当于拥有了其他模块的功能

8.angularjs中如何使用控制器

  • 定义及使用控制器
  • 控制器的作用
    • 向页面中赋初始值
    • 向页面中展示数据
    • 代码分类
  • ng-click
    • 函数调用
    • angularjs代码 不能写原生JS代码

9.单页Web应用 (single page web application) spa

  • 回顾传统网站(http://www.kuoda.com.cn/indexs.html)
  • 单页应用网站(http://m.daqizhong.com/index.html#/)
  • 单页Web应用,就是只有一张Web页面的应用
  • 用户与页面交互时,用Javascript动态更新页面
  • 分析单页面web应用
  • 单页面应用程序的特点
    • 整个网站由一个页面构成
    • 公共部分只加载一次
    • 利用Ajax局部刷新达到页面切换的目的
    • 不会发生页面跳转白屏的现象
    • 锚点与页面对应
  • 单页web应用的应用场景
    • 单页面应用对搜索引擎不友好 不适合做面向大众的展示型网站
    • 网站后台管理系统 办公OA 混合App 等等不需要被搜索引擎搜索到的应用

10.angularjs中的路由

  • angularjs中的路由使用方法
    • 官方说明文档
    • 如何获取路由模块
    • 在html页面中通过script标签的方式引入路由模块文件
    • 在应用主模块中依赖路由模块ngRoute
    • 配置路由
      • 通过config方法注入$routeProvider
      • 介绍配置中常用的参数($routePramams $scope)
    • 路由和控制器的整合
    • 使用templateUrl方式载入模板需要在http环境下(本地file协议下不支持)

11.路由传递参数

  • 在实际的项目中,访问文章详情页面的时候,一般地址栏上都会显示当前文章的ID
  • 让控制器知道我们当前访问的是哪篇文章,得到文章ID,去请求具体的文章数据

12.angularjs相关网站