前 言 第1章 初识Backbone 1 1.1 Backbone简介 1 1.1.1 Backbone的MVC结构 1 1.1.2 特点及适用范围 2 1.2 如何搭建开发Backbone应用的框架 3 1.2.1 Backbone.js主框架文件 3 1.2.2 Underscore.js依赖库文件 3 1.2.3 第三方JavaScript库 5 1.3 Backbone依赖库的使用 5 1.3.1 使用_.bindAll()函数绑定对象方法 5 1.3.2 使用_.keys()函数检索对象属性名称 7 1.4 开发第一个Backbone页面 7 1.5 本章小结 10 第2章 依赖库Underscore 11 2.1 Underscore简介 11 2 .1.1 Underscore对象封装 11 2.1.2 Underscore库的类型模块 12 2.2 集合 13 2.2.1 each()和map()函数 13 2.2.2 find()和filter()函数 15 2.2.3 max()和min()函数 16 2.2.4 sortBy()和groupBy()函数 17 2.3 数组 18 2.3.1 first()和last()函数 19 2.3.2 indexOf()和lastIndexOf()函数 20 2.3.3 without()和union()函数 21 2.4 函数 22 2.4.1 delay()函数 22 2.4.2 once ()函数 22 2.4.3 wrap ()函数 23 2.4.4 compose()函数 23 2.5 对象 24 2.5.1 keys()和values()函数 24 2.5.2 pick()和omit()函数 25 2.5.3 defaults()函数 26 2.5.4 has()函数 27 2.6 功能 28 2.6.1 random()函数 28 2.6.2 escape()和unescape()函数 28 2.6.3 template()函数 29 2.6.4 chain()函数 33 2.7 本章小结 34 第3章 事件管理 35 3.1 Backbone.Events模块API结构 35 3.2 基本事件方法 36 3.2.1 绑定on方法 36 3.2.2 绑定一次once方法 42 3.2.3 触发事件trigger方法 43 3.2.4 移除事件off方法 45 3.3 新增事件方法 49 3.3.1 监听事件listenTo方法 49 3.3.2 监听一次listenToOnce方法 50 3.3.3 停止监听stopListening方法 52 3.4 事件其他 53 3.4.1 特殊事件all的使用 54 3.4.2 事件与Model、Collection、View的关系 55 3.5 本章小结 58 第4章 数据模型 59 4.1 创建数据模型 59 4.1.1 创建一个简单模型对象 59 4.1.2 对象模型赋值的方法 60 4.1.3 自定义模型中的方法 62 4.1.4 监听对象属性值变化 63 4.2 模型对象操作 65 4.2.1 读取数据 65 4.2.2 修改数据 66 4.2.3 开启数据验证 67 4.2.4 关闭数据验证 69 4.2.5 更新数据回滚 70 4.2.6 删除数据 71 4.3 对象属性操作 73 4.3.1 attributes对象 73 4.3.2 previous和previousAttributes方法 75 4.3.3 set方法的内部顺序 77 4.4 同步数据到服务器 78 4.4.1 save方法 78 4.4.2 fetch方法 83 4.4.3 destroy方法 84 4.5 本章小结 86 第5章 模型集合 87 5.1 创建集合对象 87 5.1.1 自定义集合对象 87 5.1.2 实例化集合对象 89 5.1.3 自定义集合方法 90 5.2 操作集合中模型对象 91 5.2.1 移除集合对象中的模型 91 5.2.2 添加集合对象中的模型 94 5.2.3 查找集合对象中的模型 96 5.2.4 集合中模型对象的排序 99 5.3 与服务器交互集合中模型对象 102 5.3.1 调用fetch方法获取服务器数据 102 5.3.2 调用create方法与服务器同步数据 104 5.4 本章小结 110 第6章 视图 111 6.1 视图基础 111 6.1.1 定义视图对象 111 6.1.2 视图对象访问模型对象 114 6.1.3 视图对象访问集合对象 116 6.2 视图中的模板 118 6.2.1 处理逻辑的模板 118 6.2.2 显示多项内容的模板 120 6.2.3 自定义模板变量标记 123 6.3 视图中的元素事件 125 6.3.1 视图中简单事件绑定 126 6.3.2 绑定视图模板中的多个事件 128 6.3.3 动态绑定和取消视图中的事件 130 6.4 使用Backbone框架开发前端Web应用 134 6.4.1 功能描述 134 6.4.2 实现代码 135 6.4.3 页面效果 137 6.4.4 源码分析 137 6.5 本章小结 138 第7章 导航控制器 139 7.1 浏览器导航基础 139 7.1.1 history对象 139 7.1.2 HTML 5中history对象API 142 7.1.3 location对象 145 7.2 绑定导航地址 147 7.2.1 action方式绑定URL地址 147 7.2.2 event方式绑定URL地址 150 7.2.3 定义hash属性绑定规则 151 7.3 router类中的方法 154 7.3.1 route方法的使用 154 7.3.2 navigate方法的使用 156 7.4 history对象的stop方法 158 7.5 本章小结 161 第8章 综合案例:Backbone框架开发Web应用 162 8.1 案例1:学生信息管理系统 162 8.1.1 需求分析 162 8.1.2 界面效果 162 8.1.3 功能实现 165 8.1.4 代码分析 170 8.2 案例2:人员资料管理系统 174 8.2.1 需求分析 174 8.2.2 界面效果 174 8.2.3 功能实现 178 8.2.4 代码分析 186 8.3 本章小结 190 第9章 Require框架基础知识 191 9.1 构建Require框架开发环境 191 9.1.1 下载Require文件库 191 9.1.2 异步方式加载文件库 192 9.2 加载主模块 192 9.3 加载自定模块 193 9.3.1 示例文件间的层次关系 194 9.3.2 加载key/value格式模块 194 9.3.3 加载函数模块 196 9.3.4 加载存在依赖关系的函数模块 197 9.4 Require的配置选项 199 9.4.1 加载指定路径的模块文件 200 9.4.2 加载非AMD标准的模块文件 201 9.4.3 加载Require插件模块文件 203 9.5 本章小结 204 第10章 综合案例:Require + jQuery Mobile + Backbone框架开发 205 10.1 案例1:简单的移动端WebApp 205 10.1.1 需求分析 205 10.1.2 界面效果 206 10.1.3 功能实现 206 10.1.4 代码分析 211 10.2 案例2:移动端的新闻浏览应用 212 10.2.1 需求分析 212 10.2.2 界面效果 212 10.2.3 功能实现 213 10.2.4 代码分析 221 10.3 本章小结 223 .1.1 Underscore对象封装 11 2.1.2 Underscore库的类型模块 12 2.2 集合 13 2.2.1 each()和map()函数 13 2.2.2 find()和filter()函数 15 2.2.3 max()和min()函数 16 2.2.4 sortBy()和groupBy()函数 17 2.3 数组 18 2.3.1 first()和last()函数 19 2.3.2 indexOf()和lastIndexOf()函数 20 2.3.3 without()和union()函数 21 2.4 函数 22 2.4.1 delay()函数 22 2.4.2 once ()函数 22 2.4.3 wrap ()函数 23 2.4.4 compose()函数 23 2.5 对象 24 2.5.1 keys()和values()函数 24 2.5.2 pick()和omit()函数 25 2.5.3 defaults()函数 26 2.5.4 has()函数 27 2.6 功能 28 2.6.1 random()函数 28 2.6.2 escape()和unescape()函数 28 2.6.3 template()函数 29 2.6.4 chain()函数 33 2.7 本章小结 34 第3章 事件管理 35 3.1 Backbone.Events模块API结构 35 3.2 基本事件方法 36 3.2.1 绑定on方法 36 3.2.2 绑定一次once方法 42 3.2.3 触发事件trigger方法 43 3.2.4 移除事件off方法 45 3.3 新增事件方法 49 3.3.1 监听事件listenTo方法 49 3.3.2 监听一次listenToOnce方法 50 3.3.3 停止监听stopListening方法 52 3.4 事件其他 53 3.4.1 特殊事件all的使用 54 3.4.2 事件与Model、Collection、View的关系 55 3.5 本章小结 58 第4章 数据模型 59 4.1 创建数据模型 59 4.1.1 创建一个简单模型对象 59 4.1.2 对象模型赋值的方法 60 4.1.3 自定义模型中的方法 62 4.1.4 监听对象属性值变化 63 4.2 模型对象操作 65 4.2.1 读取数据 65 4.2.2 修改数据 66 4.2.3 开启数据验证 67 4.2.4 关闭数据验证 69 4.2.5 更新数据回滚 70 4.2.6 删除数据 71 4.3 对象属性操作 73 4.3.1 attributes对象 73 4.3.2 previous和previousAttributes方法 75 4.3.3 set方法的内部顺序 77 4.4 同步数据到服务器 78 4.4.1 save方法 78 4.4.2 fetch方法 83 4.4.3 destroy方法 84 4.5 本章小结 86 第5章 模型集合 87 5.1 创建集合对象 87 5.1.1 自定义集合对象 87 5.1.2 实例化集合对象 89 5.1.3 自定义集合方法 90 5.2 操作集合中模型对象 91 5.2.1 移除集合对象中的模型 91 5.2.2 添加集合对象中的模型 94 5.2.3 查找集合对象中的模型 96 5.2.4 集合中模型对象的排序 99 5.3 与服务器交互集合中模型对象 102 5.3.1 调用fetch方法获取服务器数据 102 5.3.2 调用create方法与服务器同步数据 104 5.4 本章小结 110 第6章 视图 111 6.1 视图基础 111 6.1.1 定义视图对象 111 6.1.2 视图对象访问模型对象 114 6.1.3 视图对象访问集合对象 116 6.2 视图中的模板 118 6.2.1 处理逻辑的模板 118 6.2.2 显示多项内容的模板 120 6.2.3 自定义模板变量标记 123 6.3 视图中的元素事件 125 6.3.1 视图中简单事件绑定 126 6.3.2 绑定视图模板中的多个事件 128 6.3.3 动态绑定和取消视图中的事件 130 6.4 使用Backbone框架开发前端Web应用 134 6.4.1 功能描述 134 6.4.2 实现代码 135 6.4.3 页面效果 137 6.4.4 源码分析 137 6.5 本章小结 138 第7章 导航控制器 139 7.1 浏览器导航基础 139 7.1.1 history对象 139 7.1.2 HTML 5中history对象API 142 7.1.3 location对象 145 7.2 绑定导航地址 147 7.2.1 action方式绑定URL地址 147 7.2.2 event方式绑定URL地址 150 7.2.3 定义hash属性绑定规则 151 7.3 router类中的方法 154 7.3.1 route方法的使用 154 7.3.2 navigate方法的使用 156 7.4 history对象的stop方法 158 7.5 本章小结 161 第8章 综合案例:Backbone框架开发Web应用 162 8.1 案例1:学生信息管理系统 162 8.1.1 需求分析 162 8.1.2 界面效果 162 8.1.3 功能实现 165 8.1.4 代码分析 170 8.2 案例2:人员资料管理系统 174 8.2.1 需求分析 174 8.2.2 界面效果 174 8.2.3 功能实现 178 8.2.4 代码分析 186 8.3 本章小结 190 第9章 Require框架基础知识 191 9.1 构建Require框架开发环境 191 9.1.1 下载Require文件库 191 9.1.2 异步方式加载文件库 192 9.2 加载主模块 192 9.3 加载自定模块 193 9.3.1 示例文件间的层次关系 194 9.3.2 加载key/value格式模块 194 9.3.3 加载函数模块 196 9.3.4 加载存在依赖关系的函数模块 197 9.4 Require的配置选项 199 9.4.1 加载指定路径的模块文件 200 9.4.2 加载非AMD标准的模块文件 201 9.4.3 加载Require插件模块文件 203 9.5 本章小结 204 第10章 综合案例:Require + jQuery Mobile + Backbone框架开发 205 10.1 案例1:简单的移动端WebApp 205 10.1.1 需求分析 205 10.1.2 界面效果 206 10.1.3 功能实现 206 10.1.4 代码分析 211 10.2 案例2:移动端的新闻浏览应用 212 10.2.1 需求分析 212 10.2.2 界面效果 212 10.2.3 功能实现 213 10.2.4 代码分析 221 10.3 本章小结 223