展开全部

主编推荐语

AngularJS的基本概念及其背后的原理,包括完整的开发框架与最佳实践。

内容简介

本书不仅抽丝剥茧地展现了AngularJS的诸多特性与技巧,还讲解了工程实践中容易陷入的“坑”,是从小工走向专家的必备参考。本书首先从实战开始,通过实战演练逐步带领读者体验Angular的开发过程,并随着进度的推进,引入所需的技术和概念。然后对于在实战中提到的一些概念进行深入讲解:包括这些概念怎么用,什么时候用,什么时候不用等。接下来讲解这些概念背后的原理,看看这些概念之间是如何协作的,包括AngularJS的工作模式等。最后

目录

  • 版权信息
  • 前言
  • 第1章 从实战开始
  • 1.1 环境准备
  • 1.Node
  • 2.cnpm
  • 3.Java
  • 4.IntelliJ
  • 5.IntelliJ的AngularJS插件
  • 6.Git
  • 7.cygwin
  • 8.开发指南与API
  • 1.2 需求分析与迭代计划
  • 1.系统隐喻
  • 2.业务目标
  • 3.需求分析
  • 4.定义导航图
  • 5.第一个迭代
  • 1.3 创建项目
  • 1.3.1 Yeoman
  • 1.3.2 FrontJet
  • 1.使用FrontJet创建项目
  • 2.启动开发服务器
  • 3.项目结构
  • 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 承诺
  • 1.生活中的一个例子
  • 2.回调地狱和Promise
  • 3.Angular中的Promise
  • 2.11 消息
  • 2.12 单元测试
  • 2.12.1 MOCK的使用方式
  • 2.12.2 测试工具与断言库
  • 2.13 端到端测试
  • 第3章 背后的原理
  • 3.1 Angular中的MVVM模式
  • 1.绝不要先设计你的页面,然后用DOM操作去改变它
  • 2.指令不是封装jQuery代码的“天堂”
  • 3.2 Angular启动过程
  • 1.浏览器下载HTML/CSS/JavaScript等
  • 2.浏览器开始构建DOM树
  • 3.jQuery初始化
  • 4.Angular初始化
  • 5.jQuery启动
  • 6.Angular启动
  • 7.加载子模块
  • 8.启动子模块
  • 9.渲染页面
  • 10.数据绑定与摘要循环
  • 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的六大要点
  • 1.统一的接口形式(Uniform Interface)
  • 2.无状态化(Stateless)
  • 3.可缓存(Cacheable)
  • 4.前后端分离(Frontend and Backend Seperation)
  • 5.分层系统(Layered System)
  • 6.按需编码-可选(Code on Demand(optional))
  • 3.7.2 REST的四个级别
  • 3.8 跨域
  • 3.8.1 同源策略与跨域
  • 3.8.2 如何解决跨域问题
  • 1.JSONP方式
  • 2.反向代理方式
  • 3.CORS方式
  • 3.9 前端安全技术
  • 3.9.1 前端攻击的基本原理和类型
  • 1.跨站脚本——XSS
  • 2.跨站请求伪造——CSRF/XSRF
  • 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 方法
  • 1.安全性
  • 2.幂等性
  • 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
  • 1.部分Ajax调用的request设置
  • 2.全局Ajax调用的请求配置
  • 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
  • 第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
  • 1.AngularJS
  • 2.Ionic Framework
  • 3.Emmet
  • 8.2 Chrome
  • 1.快速切换文件
  • 2.在源代码中搜索
  • 3.通过Workspaces来编辑本地文件
  • 4.选择下一个匹配项
  • 5.Batarang插件
  • 6.查看Model
  • 7.查看Performance
  • 8.查看AngularJS properties
  • 9.在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
  • 1.ECMAScript6简介
  • 2.TypeScript简介
  • 9.2 SEO
  • 9.3 IE兼容性
  • 9.3.1 问题概述
  • 9.3.2 问题分类
  • 1.HTML/DOM解析
  • 2.JavaScript
  • 3.CSS
  • 4.实践总结
  • 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.双狼说微信号
  • 2.QQ群
  • 3.NgNice网站http://ngnice.com/
  • 4.随书源码及勘误
  • 1.块元素水平居中
  • 2.元素垂直居中
  • 3.超长内容自动显示省略号
  • 4.用:not代替层叠规则做特例处理
  • 1.恰当命名
  • 2.避免特例处理
  • 3.避免使用style属性
  • 4.避免强制指定元素的宽度、高度
  • 1.非块元素不允许包含块元素
  • 2.指定width:100%后父元素出现滚动条
  • 后记 提问的智慧
展开全部

评分及书评

尚无评分
目前还没人评分

出版方

机械工业出版社有限公司

机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。