目录: 1. 模态对话框 : $ionicModal 2. 上拉菜单 : $ionicActionSheet 3. 弹出框 : $ionicPopup 4. 浮动框 : $ionicPopover 5. 载入指示器 : $ionicLoading 6. 背景幕 : $ionicBackdrop

1. 模态对话框 : $ionicModal

模态对话框 : $ionicModal 模态对话框常用来供用户进行选择或编辑,在模态对话框关闭之前,其他 的用户交互行为被阻止。

在ionic中使用模态对话框有三个步骤:

1.声明对话框模板

使用ion-modal-view指令声明对话框模板,对话框模板通常置入 script内以构造内联模板:

<script id="a.html" type="text/ng-template"> <ion-modal-view> </ion-modal-view> </script>

2.创建对话框对象

服务$ionicModal有两个方法用来创建对话框对象:

  • fromTemplate(templateString,options) - 使用字符串模板
  • fromTemplateUrl(templateUrl,options) - 使用内联模板 这两个方法返回的都是一个对话框对象。

3.操作对话框对象

对象框对象有以下方法用于显示、隐藏或删除对话框:

  • show() - 显示对话框
  • hide() - 隐藏对话框
  • remove() - 移除对话框
  • isShown() - 对话框是否可视?

2. 上拉菜单 : $ionicActionSheet

上拉菜单是一个自屏幕底部向上滑出的菜单,通常用来让用户做出选择。

ionic的上拉菜单由三种按钮组成,点击任何按钮都自动关闭上拉菜单:

取消按钮 - 取消按钮总是位于菜单的底部,用户点击该按钮将关闭。一个上拉菜单 最多有一个取消按钮。 危险选项按钮 - 危险选项按钮文字被标红以明显提示。一个上拉菜单最多有一个 危险选项按钮。 自定义按钮 - 用户定义的任意数量的按钮。 在ionic中使用上拉菜单需要遵循以下步骤:

1.定义上拉菜单选项

使用一个JSON对象定义上拉菜单选项,包括以下字段:

  • titleText - 上拉菜单的标题文本
  • buttons - 自定义按钮数组。每个按钮需要一个描述对象,其text字段用于按钮显示
  • cancelText - 取消按钮的文本。如果不设置此字段,则上拉菜单中不出现取消按钮
  • destructiveText - 危险选项按钮的文本。如果不设置此字段,则上拉菜单中不出现危险选项按钮
  • buttonClicked - 自定义按钮的回调函数,当用户点击时触发
  • cancel - 取消按钮回调函数,当用户点击时触发
  • destructiveButtonClicked - 危险选项按钮的回调函数,当用户点击时触发
  • cancelOnStateChange - 当切换到新的视图时是否关闭此上拉菜单。默认为true
  • cssClass - 附加的CSS样式类名称

2.创建上拉菜单

$ionicActionSheet服务的show()方法用来创建上拉菜单,返回一个函数,调用该 返回函数可以关闭此菜单。

3.弹出框 : $ionicPopup

弹出框通常用于提醒、警告等,在用户响应之前其他交互行为不能继续。与模态 对话框覆盖整个屏幕空间不同,弹出框通常仅占据一部分屏幕空间。

在ionic中,使用$ionicPopup服务管理弹出框:

$ionicPopup.show(options)
.then(function(){
//这个函数在弹出框关闭时被调用
});

show()方法返回的是一个promise对象,当弹出框关闭后,该对象被解析,这意味着 then()方法指定的参数函数此时将被调用。

show()方法的参数options是一个JSON对象,可以包括以下字段:

  • title - 弹出框标题文本
  • subTitle - 弹出框副标题文本
  • template - 弹出框内容的字符串模板
  • templateUrl - 弹出框内容的内联模板URL
  • scope - 要关联的作用域对象
  • buttons - 自定义按钮数组。按钮总是被置于弹出框底部
  • cssClass - 附加的CSS样式类

简化的特定弹出框

除了show()方法,$ionicPopup还针对一些特定场景提供了简化的方法,这些方法不需要 自定义按钮,只需要设置title和template即可:

  • alert(options) - 警告弹出框,仅包含一个按钮供关闭弹出框
  • confirm(options) - 确认弹出框,包含一个取消按钮和一个确认按钮
  • prompt(options) - 输入提示弹出框,包含一个文本输入框、一个取消按钮和一个确认按钮

4.浮动框 : $ionicPopover

浮动框通常用以非侵入的方式提供当前视图的额外信息。

在ionic中使用浮动框的几个步骤:

1.声明模板

需要首先利用ion-popover-view指令声明一个模板内容:

		<ion-popover-view>
<!--模板内容-->
</ion-popover-view>

2.创建浮动框对象

使用$ion-popover服务的以下方法创建浮动框对象:

  • fromTemplate(templateString,options) - 使用模板字符串构造浮动框
  • fromTemplateurl(templateUrl,options) - 使用内联模板构造浮动框

注意:这两个方法返回的都是promise对象,在浮动框对象被构造 成功后得到解析,这时可以获取浮动框对象:

		$ionicPopover.fromTemplate(...)
.then(function(popover){
//popover参数是浮动框对象
});

3.操作浮动框对象

浮动框对象提供以下方法:

show() - 显示浮动框 hide() - 关闭浮动框 remove() - 移除浮动框 isShown() - 浮动框是否处于显示状态?

5.载入指示器 : $ionicLoading

当进行耗时的操作时,可以使用载入指示器提示用户操作进行中,并暂时阻止交互。 载入指示器通常会叠加一个半透明的幕布层以便阻止用户的交互。

在ionic中,使用$ionicLoading服务操作载入指示器:

  • show(options) - 显示载入指示器
  • hide() - 隐藏载入指示器

显示参数

show()方法的options参数是一个JSON对象,可以包含如下字段:

  • template - 模板字符串
  • templateUrl - 内联模板的Url
  • scope - 要绑定的作用域对象
  • noBackdrop - 是否隐藏背景幕
  • hideOnStateChange - 当切换到新的视图时,是否隐藏载入指示器
  • delay - 显示载入指示器之前要延迟的时间,以毫秒为单位,默认为0,即不延迟
  • duration - 载入指示器持续时间,以毫秒为单位。时间到后载入指示器自 动隐藏。默认情况下, 载入指示器保持显示状态,知道显示的调用hide()方法

参数配置服务 : $ionicLoadingConfig

如果要在多处都使用载入指示器,统一对options参数进行配置是一个更好的方法,这样 在应用时直接调用show()方法而不必传递参数了。这通过定义一个constant provider来实现:

	  angular.module("ezApp", ["ionic"])
.constant("$ionicLoadingConfig",{
template : "default loading template ..."
})

$ionicLoading服务会通过注入器查找这个常量,如果存在就使用其值作为参数进行显示。

6.背景幕 : $ionicBackdrop

在浮动框、载入指示器中我们已经接触过背景幕。它是一个覆盖全屏的半透明图层,用来 阻止用户的交互行为。

我们可以使用*$ionicBackdrop*服务单独地使用背景幕:

  • retain() - 保持背景幕
  • release() - 释放背景幕 为什么不是show()和hide()呢?

在UI中可能有多个指令/元素都使用背景幕,为每个指令都创建单独的背景幕是不明智的。

事实上,$ionicBackdrop服务在DOM中只保留有一个背景幕。每次当使用retain()方法时, 只是给背景幕加一次锁,release()方法只是给背景幕解一次锁。如果retain()被调用三次, 背景幕将一直显示,直到release()也被调动三次后才隐藏。

ionic之AngularJS扩展动态组件的更多相关文章

  1. ionic之AngularJS扩展 移动开发(视图导航一)

    目录: 内联模板 : script 路由机制 : 状态机 导航视图 : ion-nav-view 模板视图 : ion-view 导航栏 : ion-nav-bar 回退按钮 : ion-nav-ba ...

  2. 【Ionic】---AngularJS扩展基本布局

    目录: 标题栏 : ion-header-bar 页脚栏 : ion-footer-bar header/footer : 样式及内容 内容区 : ion-content 滚动框 : ion-scro ...

  3. Ionic学习笔记5_动态组件指令

    1. 模态对话框 : $ionicModal 模态对话框常用来供用户进行选择或编辑,在模态对话框关闭之前,其他 的用户交互行为被阻止 .操作模态对象返回结果,模态对象的方法提前定制. 三个步骤 1.声 ...

  4. ionic入门之AngularJS扩展(一)

    ionic ionic是一个强大的混合式/hybridHTML5移动开发框架,特点是使用标准的HTML. CSS和JavaScript,开发跨平台(目前支持:Android.iOS,计划支持:Wind ...

  5. AngularJs的UI组件ui-Bootstrap分享(一)

    最近几个月学习了AngularJs和扩展的UI组件,并在公司小组内做了一次分享交流,感觉很有收获,在此记录下个人的学习心得. 目录: AngularJs的UI组件ui-Bootstrap分享(一) A ...

  6. AngularJs的UI组件ui-Bootstrap分享(八)——Tooltip和Popover

    tooltip和popover是轻量的.可扩展的.用于提示的指令.对于移动端来讲,这两个指令虽然可以正常工作,但是从用户体验的角度并不推荐使用. 先说tooltip,tooltip有三种使用方式: ( ...

  7. AngularJs的UI组件ui-Bootstrap分享(七)——Buttons和Dropdown

    在ui-Bootstrap中,Buttons控件和Dropdown控件与form表单中的按钮和下拉框名字很像,但实际上这两个控件有新的含义. 先说Buttons,它是一组按钮,用来实现form表单中的 ...

  8. 6个强大的AngularJS扩展应用

    本文链接:http://www.codeceo.com/article/6-angularjs-extension.html本文作者:码农网 – 小峰 AngularJS现在非常热门,是Google推 ...

  9. AngularJs的UI组件ui-Bootstrap分享(三)——Accordion

    Accordion手风琴控件使用uib-accordion和uib-accordion-group指令. <script> angular.module('myApp', ['ui.boo ...

随机推荐

  1. 【JZOJ4857】Tourist Attractions(Bitset)

    题意:给定一个n个点的无向图,求这个图中有多少条长度为4的简单路径. n<=1500 思路: #include<map> #include<set> #include&l ...

  2. JVM(四):深入分析Java字节码-下

    JVM(四):深入分析Java字节码-下 在上文中,我们讲解了 Class 文件中的文件标识,常量池等内容.在本文中,我们就详细说一下剩下的指令集内容,阐述其分别代表了什么含义,以及 JVM 团队这样 ...

  3. Restful 级别划分以及HATEOAS是什么?

    Restful简介 Rest是一种软件架构风格.设计风格,而不是标准,只是提供了一组设计原则和约束条件.它主要用于客户端和服务器交互类的软件.基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存 ...

  4. MongoDB小结27 - 聚合管道【$project】

    我们有这样的数据 { "_id" : 1, title: "abcdef", isbn: "6969696969", author: { l ...

  5. linux 硬件中断调节

    什么是中断 中断interrupts是指硬件主动的来告诉CPU去做某些事情.比如网卡收到数据后可能主动的告诉CPU来处理自己接受到的数据,键盘有了按键输入后会主动告知CPU来读取输入. 硬件主动的打扰 ...

  6. 踩坑录-利用Apche-POI.XSSFWorkbook.write,处理excel文件,通过response.outputstram下载文件,预览乱码。

    问题概要 利用Apche-POI.XSSFWorkbook.write,处理excel文件,通过response.outputstram导出文件,预览乱码. 解决办法 1.检查设置response,代 ...

  7. 理解C语言中指针的声明以及复杂声明的语法

    昨天刚把<C程序设计语言>中"指针与数组"章节读完,最终把心中的疑惑彻底解开了.如今记录下我对指针声明的理解.顺便说下怎样在C语言中创建复杂声明以及读懂复杂声明. 本文 ...

  8. vSphere,ESXi,vCenter之间的关系

    vSphere是什么? vSphere 是VMware公司公布的一整套产品包,包括类似于VMware ESXi hypervisor.VMware vCenter Server等产品 ESXi是什么? ...

  9. Centos下mahout安装与配置

    对于Mahout的安装与配置,须要一个前提.就是hadoop已经安装. 假设没有安装能够參考. http://blog.csdn.net/u012965373/article/details/4533 ...

  10. 人脸和性别识别(基于OpenCV)

    描写叙述 人脸识别包含四个步骤 人脸检測:定位人脸区域,仅仅关心是不是脸: 人脸预处理:对人脸检測出来的图片进行调整优化. 收集和学习人脸:收集要识别的人的预处理过的人脸,然后通过一些算法去学习怎样识 ...