1.angularjs优势
- 帮助我们快速构建当页面应用
- Angular自身有很多颠覆性的特性 改变了前端的编码方式 简化了我们的操作
2.angularjs是什么?
- 一款非常优秀的前端高级JS框架
- 由谷歌团队负责开发维护
3.框架与库
|
|
|
|
- 无论是angularjs还是jQuery都是用原生JS封装的
- 库:
- 对代码进行封装 调用封装的方法 简化操作
- jquery 针对DOM操作
- requirejs js模块化
- 对代码进行封装 调用封装的方法 简化操作
- 框架:
- 虽然也是调用封装的方法
- 但是更多的框架会提供代码书写的规则
- 我们要按照规则去写代码 框架会帮我们实现相应的功能
- 框架与库区别:
- 范围不同:库仅仅针对某一个方面,框架包含的范围比较广
- 库只是调用封装好的方法,框架会提供代码书写规则
4.angularjs核心思想
- write less do more(和jquery一样)
- 其核心是通过指令扩展了HTML,通过表达式绑定数据到HTML。
- Angular不推崇DOM操作,也就是说在NG中几乎找不到任何的DOM操作
- 一切操作以数据为中心,用数据驱动DOM
5.获取angularjs的方式
- 在官网上下载
- 通过CDN的方式引入到页面中
<script src="https://cdn.bootcss.com/angular.js/1.6.4/angular.min.js"></script>
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,去请求具体的文章数据