ionic 依赖angular.在学以前,我对angular进行了一下入门。javascript
最近在看ionic,想作一些笔记,因此,写下这个随笔,有什么不对的请多多指教,刚开始学,后面还会学Apache Cordova,先一个一个来!css
学ionic的基础html
javascript html css angular.js java
一、首先 ionic是什么? angularjs
ionic 是一个强大的 HTML5 应用程序开发框架(HTML5 Hybrid Mobile App Framework )。 能够帮助您使用 Web 技术,好比 HTML、CSS 和 Javascript 构建接近原生体验的移动应用程序。web
ionic 主要关注外观和体验,以及和你的应用程序的 UI 交互,特别适合用于基于 Hybird 模式的 HTML5 移动应用程序开发。 api
ionic是一个轻量的手机UI库,具备速度快,界面现代化、美观等特色。为了解决其余一些UI库在手机上运行缓慢的问题,它直接放弃了IOS6和Android4.1如下的版本支持,来获取更好的使用体验。数组
好吧,有点太官方了。咱们看 Ionic 能给咱们提供什么? 一个样式库,你能够使用它 来 装饰你的 HTML 网页 ,看起来像移动程序的 界面,什么 header 、content、footer、grid、list。这貌似没什么 实质性的东西, sencha touch ,jq 都能提供 。promise
一个用 angularjs 写的工具库,姑且叫它组件库吧。框架
固然它 还包含 了angular-animate、angular-resource、angular-sanitize、angular-ui-router,适应移动平台的模块库。
这里小带一句
二、Apache Cordova 是什么?
Apache Cordova 提供用 Javascript 访问 移动平台 的 API 。
其内部是用每一个 平台下的 web view 组件,运行 程序,而后实现了 每一个平台下的 一套 CordovaLib 供你写的程序调用,而后你就能够 调用 摄像头、磁盘等 重api。
开始学习。
这里的css 部份,我就不写了。之后遇到问题再写
js部份
http://www.ionic.wang/js_doc-index-id-52.html
这是我感受比较有意思的js方法。网上看到的,记录一下。
模态对话框 : $ionicModal 模态对话框经常使用来供用户进行选择或编辑,在模态对话框关闭以前,其余 的用户交互行为被阻止。
在ionic中使用模态对话框有三个步骤:
1.声明对话框模板
使用ion-modal-view指令声明对话框模板,对话框模板一般置入 script内以构造内联模板:
<script id="a.html" type="text/ng-template"> <ion-modal-view> </ion-modal-view> </script>
2.建立对话框对象
服务$ionicModal有两个方法用来建立对话框对象:
3.操做对话框对象
对象框对象有如下方法用于显示、隐藏或删除对话框:
上拉菜单是一个自屏幕底部向上滑出的菜单,一般用来让用户作出选择。
ionic的上拉菜单由三种按钮组成,点击任何按钮都自动关闭上拉菜单:
取消按钮 - 取消按钮老是位于菜单的底部,用户点击该按钮将关闭。一个上拉菜单 最多有一个取消按钮。 危险选项按钮 - 危险选项按钮文字被标红以明显提示。一个上拉菜单最多有一个 危险选项按钮。 自定义按钮 - 用户定义的任意数量的按钮。 在ionic中使用上拉菜单须要遵循如下步骤:
1.定义上拉菜单选项
使用一个JSON对象定义上拉菜单选项,包括如下字段:
2.建立上拉菜单
$ionicActionSheet服务的show()方法用来建立上拉菜单,返回一个函数,调用该 返回函数能够关闭此菜单。
弹出框一般用于提醒、警告等,在用户响应以前其余交互行为不能继续。与模态 对话框覆盖整个屏幕空间不一样,弹出框一般仅占据一部分屏幕空间。
在ionic中,使用$ionicPopup服务管理弹出框:
$ionicPopup.show(options) .then(function(){ //这个函数在弹出框关闭时被调用 });
show()方法返回的是一个promise对象,当弹出框关闭后,该对象被解析,这意味着 then()方法指定的参数函数此时将被调用。
show()方法的参数options是一个JSON对象,能够包括如下字段:
除了show()方法,$ionicPopup还针对一些特定场景提供了简化的方法,这些方法不须要 自定义按钮,只须要设置title和template便可:
浮动框一般用以非侵入的方式提供当前视图的额外信息。
在ionic中使用浮动框的几个步骤:
1.声明模板
须要首先利用ion-popover-view指令声明一个模板内容:
<ion-popover-view> <!--模板内容--> </ion-popover-view>
2.建立浮动框对象
使用$ion-popover服务的如下方法建立浮动框对象:
注意:这两个方法返回的都是promise对象,在浮动框对象被构造 成功后获得解析,这时能够获取浮动框对象:
$ionicPopover.fromTemplate(...) .then(function(popover){ //popover参数是浮动框对象 });
3.操做浮动框对象
浮动框对象提供如下方法:
show() - 显示浮动框 hide() - 关闭浮动框 remove() - 移除浮动框 isShown() - 浮动框是否处于显示状态?
当进行耗时的操做时,能够使用载入指示器提示用户操做进行中,并暂时阻止交互。 载入指示器一般会叠加一个半透明的幕布层以便阻止用户的交互。
在ionic中,使用$ionicLoading服务操做载入指示器:
show()方法的options参数是一个JSON对象,能够包含以下字段:
若是要在多处都使用载入指示器,统一对options参数进行配置是一个更好的方法,这样 在应用时直接调用show()方法而没必要传递参数了。这经过定义一个constant provider来实现:
angular.module("ezApp", ["ionic"]) .constant("$ionicLoadingConfig",{ template : "default loading template ..." })
$ionicLoading服务会经过注入器查找这个常量,若是存在就使用其值做为参数进行显示。
在浮动框、载入指示器中咱们已经接触过背景幕。它是一个覆盖全屏的半透明图层,用来 阻止用户的交互行为。
咱们能够使用*$ionicBackdrop*服务单独地使用背景幕:
在UI中可能有多个指令/元素都使用背景幕,为每一个指令都建立单独的背景幕是不明智的。
事实上,$ionicBackdrop服务在DOM中只保留有一个背景幕。每次当使用retain()方法时, 只是给背景幕加一次锁,release()方法只是给背景幕解一次锁。若是retain()被调用三次, 背景幕将一直显示,直到release()也被调动三次后才隐藏。