编辑推荐
在移动互联网竞争环境下, HTML5技术一直备受关注,应用日益广泛,传智播客开发了HTML5开发系列课程。本书基于该系列课程的扎实基础,是一本HTML5混合App开发的应用型教材,适合有HTML5移动Web开发和JavaScript编程基础的读者使用。书中介绍的ionic框架在混合App开发领域技术完善,适合新手入门。书中大部分知识点都配有案例练习和代码分析,让读者即学即用。本书配备了2个阶段项目和1个综合项目,有效提升读者实操技能。内容讲解通俗易懂,实例丰富,适合作为高等院校计算机相关专业程序设计类课程或者Web开发的专用教材,也可以作为广大IT从业者的参考用书。 ;
内容简介
在竞争激烈的移动互联网环境下,HTML5技术一直备受关注。HTML5混合App开发与原生App开发模式之间也争议不断。相对于原生App来说,HTML5混合App开发的成本更低、周期更短,而且随着移动设备的硬件支持越来越好,HTML5混合App的性能也越来越好,很多企业都觉得使用HTML5混合App开发更合适。 本书围绕HTML5混合App开发进行详细讲解,全书共12章。第1章对混合App开发及涉及的技术作概括介绍,包括AngularJS、Cordova和ionic的简介,以及这几种技术在混合App开发中所发挥的作用。第2~6章介绍AngularJS的基础知识,为ionic框架的学习打下基础,主要包括AngularJS的模块、控制器、作用域、基本原理、表达式、指令、服务等。第7~11章对ionic框架的使用进行详细的介绍,主要包括ionic开发环境的安装与配置、应用打包、ionic CSS、ionic JavaScript等。第12章是一个综合项目,目的是对前面所学的知识进行巩固。 本书附有配套资源,如源代码、教学视频、习题、教学课件等;而且为了帮助读者更好地学习还提供了在线答疑,希望得到更多读者的关注。 本书既可作为高等院校本、专科计算机相关专业程序设计课程的教材,也可作为广大计算机编程爱好者的参考用书。
作者简介
暂无
目录
目录
第1章混合App开发简介1
【教学导航】1
1.1什么是混合App开发1
1.1.1移动App开发的三种模式1
1.1.2混合App开发应用场景3
1.2混合App开发应用技术4
1.2.1MVC与MVVM架构模式4
1.2.2AngularJS简介6
1.2.3Cordova简介8
1.2.4ionic简介9
1.3本章小结10
第2章初识AngularJS11
【教学导航】11
2.1快速体验AngularJS11
2.1.1AngularJS1与AngularJS2
的区别11
2.1.2AngularJS的环境配置12
2.1.3第一个AngularJS程序13
2.2AngularJS的基本概念16
2.2.1AngularJS的模块与
控制器16
2.2.2AngularJS作用域20
2.2.3AngularJS表达式24
2.2.4AngularJS的指令27
2.2.5自动化双向绑定28
2.3本章小结29
第3章AngularJS的指令30
【教学导航】30目录HTML5混合App开发3.1指令的分类30
3.2AngularJS常用的内置指令31
3.2.1程序控制和数据绑定类指令31
3.2.2状态设置类指令33
3.2.3事件绑定类指令39
3.2.4访问流程类指令42
3.2.5加载处理类指令49
3.3AngularJS的自定义指令50
3.3.1directive()函数51
3.3.2自定义指令的约束53
3.3.3指令的作用域54
3.4本章小结58
第4章AngularJS相关原理59
【教学导航】59
4.1AngularJS与MVVM59
4.2AngularJS的启动流程60
4.3脏检查机制62
4.3.1脏检查机制的实现原理62
4.3.2$watch函数66
4.3.3$apply函数67
4.4AngularJS与依赖注入68
4.4.1什么是依赖注入69
4.4.2JavaScript如何实现依赖注入70
4.4.3AngularJS中的依赖注入72
4.5本章小结74
第5章AngularJS的服务75
【教学导航】75
5.1AngularJS创建服务75
5.1.1使用provider()函数创建服务76
5.1.2使用factory()函数创建服务79
5.1.3使用service()函数创建服务80
5.1.4使用value()和constant()函数创建服务83
5.2AngularJS内置服务85
5.2.1访问JavaScript全局对象85
5.2.2AngularJS路由91
5.2.3AngularJS中的Ajax访问95
5.3本章小结98
第6章AngularJS框架项目实战99
6.1项目实战——邀请名单99
6.1.1项目展示99
6.1.2项目分析101
6.1.3项目目录和文件结构103
6.1.4封装对象模型104
6.1.5编写业务逻辑106
6.1.6编写静态页面107
6.1.7添加数据绑定110
6.2项目实战——电影列表111
6.2.1项目展示111
6.2.2项目分析113
6.2.3项目目录和文件结构115
6.2.4接口API测试116
6.2.5搭建项目并封装自定义的JSONP服务117
6.2.6封装和测试数据对象模型119
6.2.7编写电影列表页面的控制器和模板122
6.2.8编写电影详情页面的控制器和模板125
6.2.9完成路由功能并整合项目126
6.3本章小结128
第7章ionic开发环境的安装与配置129
【教学导航】129
7.1安装Android SDK129
7.1.1JDK的下载和安装129
7.1.2Android SDK的下载和安装135
7.2安装Node.js142
7.2.1Node.js和NPM简介142
7.2.2Node.js的下载和安装142
7.3安装Git146
7.4安装ionic和Cordova150
7.4.1ionic1与ionic2的区别150
7.4.2ionic和Cordova的安装150
7.5本章小结151
第8章快速体验ionic项目152
【教学导航】152
8.1快速创建ionic项目152
8.1.1ionic的3种项目模板152
8.1.2下载项目模板153
8.1.3为项目添加Android平台支持155
8.1.4打包Android APK157
8.2ionic项目目录和文件结构159
8.2.1常用工作目录和重要文件159
8.2.2其他工作目录和文件163
8.3定制项目图标和启动页165
8.4本章小结168
第9章ionic CSS169
【教学导航】169
9.1基本布局类样式169
9.1.1手机App常用布局方式169
9.1.2定高条块170
9.1.3内容区域175
9.2颜色和图标类样式177
9.2.1颜色177
9.2.2图标179
9.3界面组件类样式181
9.3.1按钮181
9.3.2列表185
9.3.3卡片191
9.3.4表单输入192
9.3.5选项卡200
9.4栅格系统类样式204
9.4.1基本行与列204
9.4.2指定列宽205
9.4.3指定列偏移206
9.4.4列表纵向对齐207
9.4.5响应式栅格209
9.5本章小结210
第10章ionic JavaScript(上)212
【教学导航】212
10.1ionic JavaScript概述212
10.1.1ionic指令式组件212
10.1.2ionic服务式组件213
10.2基本布局组件214
10.2.1固定标题栏214
10.2.2内容区域216
10.2.3滚动条218
10.2.4滚动刷新220
10.2.5下拉刷新223
10.2.6手动控制滚动视图225
10.3ionic路由229
10.3.1路由状态机229
10.3.2模板视图与视图容器230
10.3.3路由的实现230
10.4界面组件233
10.4.1顶部导航栏234
10.4.2列表237
10.4.3表单输入241
10.4.4幻灯片243
10.4.5侧边栏菜单246
10.4.6选项卡251
10.5本章小结256
第11章ionic JavaScript(下)257
【教学导航】257
11.1动态组件257
11.1.1模态对话框257
11.1.2上拉菜单262
11.1.3弹出框265
11.1.4浮动框269
11.1.5背景幕273
11.1.6载入指示器275
11.2手势事件277
11.2.1常用的手势事件277
11.2.2手动注册与解除手势事件278
11.3IndexedDB279
11.3.1IndexedDB简介279
11.3.2Object Store280
11.3.3请求的生命周期281
11.3.4IndexedDB的基本使用282
11.4本章小结289
第12章项目实战——Mall App290
12.1项目简介290
12.1.1项目展示290
12.1.2项目目录和文件结构293
12.2任务1——项目结构搭建295
12.2.1任务描述295
12.2.2任务分析295
12.2.3代码实现296
12.3任务2——引导页298
12.3.1任务描述298
12.3.2任务分析299
12.3.3代码实现300
12.4任务3——导航标签307
12.4.1任务描述307
12.4.2任务分析307
12.4.3代码实现307
12.5任务4——商城首页310
12.5.1任务描述310
12.5.2任务分析310
12.5.3代码实现311
12.6任务5——商品分类323
12.6.1任务描述323
12.6.2任务分析324
12.6.3代码实现324
12.7任务6——商品列表335
12.7.1任务描述335
12.7.2任务分析 335
12.7.3代码实现336
12.8任务7——商品详情347
12.8.1任务描述347
12.8.2任务分析347
12.8.3代码实现349
12.9任务8——购物车364
12.9.1任务描述364
12.9.2任务分析365
12.9.3代码实现365
12.10任务9——个人中心379
12.10.1任务描述379
12.10.2任务分析379
12.10.3代码实现380
12.11本章小结388
前沿
前言
 ;
为什么要学习本书
HTML5混合App开发是指使用基于HTML5的前端框架(如ionic)来开发App的技术,已经成为继Android、iOS开发技术之后又一火爆的移动App开发技术。
HTML5混合App开发的具体实现方式是,把HTML5应用程序嵌入一个原生容器中。此种方式实现的App集原生应用程序和HTML5应用程序的优点于一体,相比原生App界面更加美观,而且开发时间短,成本较低;这让掌握HTML5混合App开发技术的工程师的薪资水涨船高,在移动互联网行业抢尽风头。
本书讲解的混合App开发是使用ionic框架实现的,该框架基于HTML5和AngularJS,所以在本书的前半部分讲解了AngularJS的内容作为学习ionic的基础。如果你对HTML5混合App开发感兴趣,那么本书正好是你需要的。
如何使用本书
本书适合有HTML5、CSS3和JavaScript基础,熟悉HTML5移动Web开发的读者使用。作为一门技术教程,最重要也最难的一件事情就是要将一些复杂的功能简单化,让读者能够轻松理解并快速掌握。
本书对每个知识点都进行了深入的分析,并针对每个知识点精心设计了相关案例,同时还提供了两个阶段项目和一个综合项目;让读者能够将这些知识点运用在实际工作中,真正做到了由浅入深、由易到难。
本书共12章,接下来分别对每章进行简单的介绍。
免费在线读
5
使用插值语法取出data的效果
11{{data}}12
13
使用ng-bind取出data的效果
1415
16
17
18
<script>19//创建一个AngularJS模块20var app=angular.module(app, []);21app.controller(MainController, function ($scope) {22//$scope 是AngularJS的控制器附带的“数据仓库”23$scope.data= his is data;24});252627在上述代码中,第23行定义了属性data,值为this is data;第11行和第14行分别使用插值语法和ngbind指令获取data值。打开Chrome浏览器,访问demo31.html,页面效果如图31所示。图31demo31.html页面效果在图31中可以看到,使用两种方法取值显示的效果是一样的。3.2.2状态设置类指令AngularJS中的状态设置类指令用于改变HTML元素的显示状态,包括为元素绑定样式、设置元素只读和禁用、设置显示和隐藏等。常用的状态设置类指令如表33所示。表33状态设置类指令指令描述ngstyle用于为HTML元素添加style属性ngclass用于给HTML元素动态绑定一个或多个CSS类ngreadonly用于设置表单域(input或textarea)的readonly(只读)属性ngdisabled用于设置表单输入字段(input、select或 textarea)的disabled属性nghide用于设置隐藏HTML元素ngshow用于设置显示HTML元素1. ngstylengstyle指令用于样式的绑定,语法如下。
5
13
14
15
16
<script>17//创建一个AngularJS模块18var app=angular.module(app, []);19app.controller(mainController, function ($scope) {20//在作用域内定义样式属性myStyle21$scope.myStyle={22 "background-color": "yellow",23 "width":"100px",24 "282930在上述代码中,第21~26行在作用域中定义了样式对象myStyle。在myStyle对象中可以使用keyvalue形式来定义CSS样图32demo32.html页面效果式,每个keyvalue的key可以去掉双引号,但是去掉双引号后key中包含的“”符号会报语法错误。因此,可以将key改写成驼峰式,例如将backgroundcolor改写成backgroundColor。第10行使用ngstyle指令绑定myStyle对象,并且使用div元素的style属性设置了div元素的高度。需要注意的是,ngstyle属性与HTML元素的style属性可以同时使用。打开Chrome浏览器,访问demo32.html,页面效果如图32所示。2. ngclassngclass指令用于绑定动态CSS类,语法如下。
5
202122
28
29
30
31
<script>32//创建一个AngularJS模块33var app=angular.module(app, []);34app.controller(mainController, function ($scope) {35//创建classOptions对象,对已经有的CSS样式设置是否开启36$scope.classOptions={37"myColor":true,38"myDiv":true,39"myBorder":true40}41});424344在上述代码中,第8~18行定义了三组样式(.myColor、.myDiv和.myBorder);第36~40行定义了classOptions对象,在该对象上设置是否启用样式(true为启用,flase为禁用);第25行使用ngclass指令绑定classOptions对象,与ngstyle类似,这里的key值也可以去掉引号,但是去掉引号后不能包括“”,否则会出现语法错误。打开Chrome浏览器,访问demo33.html,页面效果如图33所示。修改demo33.html中的第39行,将myBorder设置为false,那么div元素将会被去掉边框,此时的页面效果如图34所示。图33demo33.html页面效果图34去掉边框的页面效果
3. ngshow和nghide在JavaScript中,通过设置HTML元素的display值来控制元素的显示和隐藏;AngularJS的指令nghide和ngshow也可以实现这样的功能,使用两个指令的语法如下。
5
ng-show="myTrue"
13
14
ng-show="myFalse"
17
18
ng-hide="myTrue"
21
22
ng-hide="myFalse"
25
26
27
28
29
<script>30var app=angular.module(app,[]);31app.controller(MainController,function($scope){32 //定义两个boolean类型的属性33$scope.myTrue=true;34$scope.myFalse=false;35});363738在上述语法中,第10~25行定义了4个div,并且在div上分别用ngshow和nghide指令绑定了myTrue和图35demo34.html页面效果myFalse。打开Chrome浏览器,访问demo34.html,页面效果如图35所示。在图35中可以看出,绑定ngshow="myTrue"和nghide="myFalse"的两个div显示出来了。4. ngreadonly和ngdisabled在AngularJS中,ngreadonly和ngdisabled指令用于设置元素的只读和无效状态,与JavaScript相同,只读和无效状态是针对输入框的。只读状态下,输入框的数据不能编辑,但是会被表单提交;而无效状态下,输入框的数据不能编辑,也不会被提交。使用ngreadonly和ngdisabled指令的语法如下。
在上述语法中,expression表达式返回的值是布尔类型。ngreadonly指令返回值为true时用于设置输入框的只读状态,ngdisabled指令返回值为true时用于设置输入框的无效状态。接下来通过一个案例来演示ngreadonly和ngdisabled指令的具体用法,代码见demo35.html。demo35.html1234
5
18
19
20
21
<script>22//创建一个AngularJS模块23var app=angular.module(app, []);24app.controller(MainController, function ($scope) {25//定义属性text用于绑定ng-model26$scope.text=some text;27//定义属性boolean用于绑定ng-readonly和on-disabled28$scope.boolean=true;29});303132在上述代码中,第26行定义了属性text用于绑定ngmodel;第28行定义了属性boolean用于绑定到ngreadonly图36demo35.html页面效果和ngdisabled;第11行使用ngmodel指令将text属性绑定到input输入框,并使用ngreadonly指令设置输入框为只读状态;第13行使用ngmodel指令将text属性绑定到input输入框,并使用ngdisabled指令设置输入框为无效状态。打开Chrome浏览器,访问demo35.html,页面效果如图36所示。在图36中,第一个输入框的状态是只读,第二个输入框的状态是无效,两个输入框的some text内容都不能编辑。单击“提交”按钮提交表单,观察地址栏,如图37所示。图37表单提交效果从图37中可以看出,只有id1的数据被提交了,说明只读输入框中的数据被提交了,而无效状态输入框中的数据没有被提交。3.2.3事件绑定类指令AngularJS中用于事件绑定功能指令的名称与JavaScript的事件名称非常类似,AngularJS中常用的事件绑定类指令如表34所示。表34事件绑定类指令指令描述ngclick用于指定鼠标单击HTML元素时需要执行的操作,所有HTML元素都支持该指令ngdblclick用于指定鼠标双击HTML元素时需要执行的操作,所有HTML元素都支持该指令ngfocus用于指定HTML元素获取焦点时需要执行的操作,支持、、
16
ng-show="myFalse"
17
HTML5混合App开发 pdf下载声明
本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版