科技
类型
8.8
豆瓣评分
可以朗读
语音朗读
320千字
字数
2015-01-01
发行日期
展开全部
主编推荐语
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、科普以及教材、教辅等领域。