AngularJS深度剖析与最佳实践
2020-04-17 10:15:36 0 举报
AI智能生成
AngularJS深度剖析与最佳实践
作者其他创作
大纲/内容
AngularJS深度剖析与最佳实践
6 Angular常见的“坑”
6.1 module函数的声明和获取重载
6.2 ngModel绑定值不更改
6.2.1 验证引起的model值不显示
6.2.2 原型链继承问题
6.3 指令不生效
6.4 Angular中锚点的使用
6.5 ngRepeat验证失效
6.5.1 简单的验证显示
6.5.2 复杂的验证显示
6.6 有些指令需要唯一的根节点
6.7 指令优先级-Priority
6.8 ngRepeat报重复内容错误
6.9 单元测试中promise不触发
7 编码规范
7.1 目录结构
7.1.1 按照类型优先、业务功能其次的组织方式
7.1.2 按照业务功能优先、类型其次的组织方式
7.2 模块组织
7.2.1 命名
7.2.2 Module声明
7.2.3 依赖声明
7.2.4 Module组件声明
7.3 控制器
7.3.1 命名
7.3.2 ControllerAs vm声明
7.3.3 初始化数据
7.3.4 DOM操作
7.3.5 依赖的声明
7.3.6 精简控制器逻辑
7.3.7 禁止用$rootScope传递数据
7.3.8 格式化显示逻辑
7.3.9 Resolve
7.4 服务
7.4.1 命名
7.4.2 代码复用
7.4.3 使用场景
7.4.4 Service返回值
7.4.5 缓存不变数据
7.4.6 RESTful
7.5 过滤器
7.5.1 命名
7.5.2 重用已有Filter
7.5.3 禁止复杂的Filter
7.6 指令
7.6.1 命名
7.6.2 Template声明
7.6.3 link函数的scope参数命名
7.6.4 pre-link和post-link
7.6.5 DOM操作
7.6.6 Directive分类
7.6.7 Directive不是封装jQuery代码“天堂”
7.6.8 自动回收
7.7 模板
7.7.1 表达式绑定
7.7.2 Src、Href问题
7.7.3 Class优于Style
7.8 工具
7.9 其他
7.9.1 内置$服务替代原生服务
7.9.2 Promise解决回调地狱
7.9.3 减少$watch
7.9.4 TDD
8 工具
8.1 WebStorm与IntelliJ
8.2 Chrome
8.3 Gulp
8.4 Swagger
8.4.1 前后端分离
8.4.2 Swagger
8.4.3 契约测试
8.5 TSD
8.6 Postman
8.6.1 安装
8.6.2 功能介绍
9 杂项知识
9.1 Angular 2.0
9.2 SEO
9.3 IE兼容性
9.3.1 问题概述
9.3.2 问题分类
9.4 访问统计
9.5 响应式布局
9.6 国际化
9.7 动画
9.7.1 CSS动画
9.7.2 JavaScript动画
9.8 手机版开发
9.8.1 Hybrid应用
9.8.2 Ionic
附录A 相关资源
1 从实战开始
1.1 环境准备
1.2 需求分析与迭代计划
1.3 创建项目
1.3.1 Yeoman
1.3.2 FrontJet
1.4 实现第一个页面:注册
1.4.1 约定优于配置
1.4.2 定义路由
1.4.3 把后端程序跑起来
1.4.4 连接后端程序
1.4.5 添加验证器
1.4.6 “错误信息提示”指令
1.4.7 用过滤器生成用户友好的提示信息
1.4.8 实现自定义验证规则
1.4.9 实现图形验证码
1.5 实现更多功能:主题
1.5.1 实现主题列表
1.5.2 实现过滤功能
1.5.3 实现分页功能
1.5.4 实现主题树
1.5.5 实现递归主题树
1.5.6 实现“查看详情”功能
1.6 实现AOP功能
1.6.1 实现登录功能
1.6.2 实现对话框
1.6.3 实现错误处理功能
1.7 实战小结
2 概念介绍
2.1 什么是UI
2.2 模块
2.3 作用域
2.4 控制器
2.5 视图
2.6 指令
2.6.1 组件型指令
2.6.2 装饰器型指令
2.7 过滤器
2.8 路由
2.9 服务
2.9.1 服务
2.9.2 工厂
2.10 承诺
2.11 消息
2.12 单元测试
2.12.1 MOCK的使用方式
2.12.2 测试工具与断言库
2.13 端到端测试
3 背后的原理
3.1 Angular中的MVVM模式
3.2 Angular启动过程
3.3 依赖注入
3.3.1 什么是依赖注入
3.3.2 如何在JavaScript中实现DI
3.3.3 Angular中的DI
3.3.4 DI与minify
3.4 脏检查机制
3.4.1 浏览器事件循环和Angular的MVW
3.4.2 Angular中的$watch函数
3.4.3 Angular中的$digest函数
3.4.4 Angular中的$apply
3.5 指令的生命周期
3.5.1 Injecting
3.5.2 compile和link过程
3.6 Angular中的$parse、$eval和$observe、$watch
3.6.1 $parse和$eval
3.6.2 $observe和$watch
3.6.3 使用场景
3.7 REST
3.7.1 REST的六大要点
3.7.2 REST的四个级别
3.8 跨域
3.8.1 同源策略与跨域
3.8.2 如何解决跨域问题
3.9 前端安全技术
3.9.1 前端攻击的基本原理和类型
3.9.2 前端安全与前后端分工
3.9.3 移动时代的特殊挑战
3.9.4 安全无止境
4 最佳实践
4.1 调整开发协作流程
4.2 前后端分离部署
4.3 样式中心页
4.4 CSS的扩展语言与架构
4.5 HTML的表意性
4.6 table,天使还是魔鬼
4.7 测试什么?怎么测?
4.7.1 准备工作
4.7.2 如何测试Controller
4.7.3 如何测试Service
4.7.4 如何测试Filter
4.7.5 如何测试组件型指令
4.7.6 如何测试装饰器型指令
4.7.7 如何测试网络请求
4.7.8 如何测试setTimeout类功能
4.7.9 如何Mock Service
4.8 如何设计友好的REST API
4.8.1 URI
4.8.2 资源拆分
4.8.3 资源命名
4.8.4 方法
4.8.5 返回值
4.8.6 综合案例:分页API
4.9 使用controller as vm方式
4.9.1 源码分析
4.9.2 推荐用法和优势
4.9.3 路由中的controller as语法
4.9.4 指令中的controller as语法
4.10 移除不必要的$watch
4.10.1 双向绑定和watchers函数
4.10.2 其他指令中的watchers函数
4.10.3 慎用$watch和及时销毁
4.10.4 one-time绑定
4.10.5 滚屏加载
4.10.6 其他
4.11 总是用ng-model作为输出
4.12 用打包代替动态加载
4.13 引入Angular-hint
4.13.1 通过batarang插件使用angular-hint
4.13.2 手动集成angular-hint
4.13.3 Module hints
4.13.4 Controller hints
4.13.5 Directive hints
5 Angular开发技巧
5.1 $timeout的妙用
5.2 ngTemplate寄宿方式
5.3 在非独立作用域指令中实现scope绑定
5.4 表单验证错误信息显示
5.5 Angular中的AOP机制
5.5.1 拦截器案例
5.5.2 拦截器源码分析
5.5.3 Angular中的装饰器
5.5.4 Angular装饰器源码分析
5.6 Ajax请求和响应数据的转换
5.6.1 兼容老式API
5.6.2 Ajax请求配置的源码分析
5.7 在代码中注入Filter
5.7.1 复用指定Filter
5.7.2 重用多个Filter案例
5.7.3 Filter源码分析
5.8 防止Angular表达式闪烁
5.8.1 表达式闪烁解决方案
5.8.2 ngCloak源码分析
5.8.3 最佳实践
5.9 实现前端权限控制
5.9.1 事件方案
5.9.2 resolve方案
5.10 依赖注入——$injector
5.10.1 $injector的创建
5.10.2 $injector注入方式
5.10.3 $injector的妙用
5.11 在指令中让使用者自定义模板
5.12 跨多个节点的ng-if或ng-repeat
5.13 阻止事件冒泡和浏览器默认行为
5.14 动态绑定HTML
0 条评论
下一页