十五、ionic路由

1、ionic中内联模板介绍

使用内联模板
内联模板的使用,常见的有几种情况。
(1) 使用ng-include指令
可以利用ng-include指令在HTML中直接使用内联模板,例如: <div ng-include="'a.html'"></div> 注意:其中a.html是一个字符串常量,需要使用单引号包裹起来。
(2)使用$templateCache服务
也可以直接使用$templateCache服务的方法get()从模板缓存中读出 其内容:
var partial = $templateCache.get("a.html");
(3)使用$http服务
还有一种常见的用法是使用$http服务时指定cache参数,这将直接从$templateCache 中取出模板,而不必进行网络访问: $http.get("a.html",{cache:$templateCache}) .success(function(d,s){..}) .error(function(d,s){...});

(4)配置状态机
需要指出的是,状态的划分以及每个状态的元信息(比如模板、url等)是在配置 阶段通过$stateProvider完成的:

angular.module("myApp",["ionic"]) .config(

function($stateProvider){

$stateProvider.state("state1",{...})

.state("state2",{...})

.state3("state3",{...});

});
触发状态迁移的几种方式(通俗的讲就是页面跳转的几种方式)
a. 调用$state.go()方法,这是一个高级的便利方法;
b. 点击包含ui-sref指令的链接 <a ui-sref="state1">Go State 1</a>
c. 导航到与状态相关联的 url。
当用户点击这个链接时,$state服务将根据状态名state1 找到对应的元信息,提取、编译模板,并将其显示在ui-view指令指定的 视图窗口中。

2、导航视图 : ion-nav-view

3、模板视图 : ion-view

ion-view指令有一些可选的属性:
 view-title - 视图标题文字
模板被载入导航视图ion-nav-view显示时,这个属性值将显示在导航栏ion-nav-bar中
 cache-view - 是否对这个模板视图进行缓存
允许值为:true | false,默认为true
 hide-back-button -是否隐藏导航栏中的返回按钮
当模板被载入导航视图时,如果之前有其他的模板,那么在导航栏ion-nav-bar上默认会自动 显示返回按钮(使用指令ion-nav-back-button定义)。点击该按钮将返回前一个模板。 hide-back-button的允许值为:true | false ,默认为false 注意:必须在导航栏中显式地声明返回按钮,否则即使将hide-back-button属性设为false, 这个按钮也不会出现:-)
 hide-nav-bar - 是否隐藏导航栏
允许值为:true | false ,默认为false

4、导航栏 : ion-nav-bar

ion-nav-bar有以下可选的属性:
 align-title - 标题对齐方式
允许值为: left | right | center。默认为center,居中对齐
 no-tap-scroll - 点击导航栏时是否将内容滚动到顶部。
允许值为:true | false。默认为true,这意味着如果视图中的内容下拉很长,那么在任何时刻 点击导航栏都可以立刻回到内容的开头部分。

5、回退按钮 : ion-nav-back-button

6、视图特定按钮 : ion-nav-buttons

7、定制标题内容 : ion-nav-title

8、定制视图切换方式 : nav-transition

9、定制视图切换方向 : nav-direction

10、导航栏脚本接口 : $ionicNavBarDelegate

服务$ionicNavBarDelegate提供了控制导航栏的脚本接口:
 align([direction]) - 标题对齐方式。
参数direction是可选的,允许值为:left | right | center,缺省值为center。
 showBackButton([show]) - 是否显示回退按钮
参数show是可选的,允许值为:true | false,缺省值为true。
 showBar(show) - 是否显示导航栏
参数show的允许值为:true | false 。
 title(title) - 设置导航栏标题
参数title为HTML字符串。

11、访问历史 : $ionicHistory

ionic的导航框架会自动维护用户的访问历史栈,我们可以通过服务$ionicHistory管理访问轨迹:
 viewHistory() - 返回视图访问历史数据
 currentView() - 返回当前视图对象
 currentHistoryId() - 返回历史ID
 currentTitle([val]) - 设置或读取当前视图的标题
参数val是可选的。无参数调用currentTile()方法则返回当前视图的标题。
 backView() - 返回历史栈中前一个视图对象
如果从视图A导航到视图B,那么视图A就是视图B的前一个视图对象。
 backTitle() - 返回历史栈中前一个视图的标题
 forwardView() - 返回历史栈中的下一个视图对象
 currentStateName() - 返回当前所处状态名
 goBack() - 切换到历史栈中前一个视图
当然,前提是存在前一个视图。
 clearHistory() - 请空历史栈
除了当前的视图记录,clearHistory()将清空应用的全部访问历史

十六、ionic ion-tap选项卡以及 路由结合ion-tap详解

注意: 1. 不要把ion-tabs指令放在ion-content之内 2. ion-tab的内容应当放入ion-view指令内,否则ionic在计算布局时可能出错

1、ion-tabs 常用设置

(1)ion-tabs声明条带风格

(2)ion-tabs : 声明位置

2、ion-tabs 下面的 ion-tab : 标题文字、图标和徽章显示隐藏

(1)title - 标题文字

(2)icon - 标题图标

(3)icon-on - 被选中状态的标题图标

(4)icon-off - 未选中状态的标题图标

(5)badge - 标题徽章

(6)badge-style - 标题徽章样式

(7)hidden - 隐藏

(8)disabled - 禁止

3、ion-tabs 事件 和 $ionicTabsDelegate

(1)on-select - 选中事件

(2)on-deselect - 未选中事件

(3)ng-click - 点击事件

(4)ionicTabsDelegate

使用$ionicTabsDelegate服务,我们可以在脚本中控制选项卡对象: select(index) - 选中指定的选项页 index参数从0开始,第一个选项页的index为0,第二个为1,依次类推。 selectedIndex() - 返回当前选中选项页的索引号 如果当前没有选中的选项页,则返回 -1。

4、ion-tabs路由详解

(1) 触发状态迁移的几种方式(通俗的讲就是页面跳转的几种方式)
a. 调用$state.go() 方法,这是一个高级的便利方法;

b. 点击包含 ui-sref 指令的链接 <a ui-sref="state1">Go State 1</a>

c. 导航到与状态相关联的 url。
(2) 通过href方式页面切换需要指定 url

5、ionic中结合tab状态嵌套的几种方式

有三个嵌套的方法:
(1)使用“点标记法”,例如:.state('contacts.list', {})
(2)使用parent属性,指定一个父状态的名称字符串,例如:parent: 'contacts'
(3)使用parent属性,指定一个父状态对象,例如:parent: contacts(contacts 是一个状态对象)

6、ionic路由结合tap实现页面切换

(1) 在ionic tab中定义ion-nav-view 并且加上name属性

(2)在ionic $stateProvider.state中定义view 并对应 ion-nav-view 中的name属性

7、ionic states 抽象状态abstract

十七、ionic侧边栏ion-side-menus 以及ion-tap结合侧边栏详解

1、侧边栏菜单 : ion-side-menus

<ion-side-menus>
<!-- 中间内容 -->
<ion-side-menu-content ng-controller="ContentController"> </ion-side-menu-content>
<!-- 左侧菜单 -->
<ion-side-menu side="left"> </ion-side-menu>
<!-- 右侧菜单 -->
<ion-side-menu side="right"> </ion-side-menu>
</ion-side-menus>

2、侧边栏打开关闭切换指令 : menu-toggle/menu-close

3、ion-side-menu-content 属性设置

ion-side-menu-content指令有以下可选属性:

drag-content - 是否允许拖动内容打开侧栏菜单,默认为true。 允许值:true | false。当设置为false时,将禁止通过拖动内容打开侧栏菜单。

edge-drag-threshold - 是否启用边距检测。默认为false。 允许值:number | true | false。

如果设置为一个正数,那么只有当拖动发生在距离边界小于这个数值的情况下, 才触发侧栏显示。当设置为true时,使用默认的25px作为边距阈值。

如果设置为false或0,则意味着禁止边距检测,可以在内容区域的任何地方 拖动来打开侧栏。

4、侧边栏区域容器 : ion-side-menu 属性

ion-side-menu指令有以下属性:

side - 位于内容区的左边或右边 side属性是必须的。允许值:left | right。默认值为left。
width - 侧边栏的宽度 width属性是可选的,表示以像素为单位的侧栏菜单宽度。默认为275px。
is-enabled - 是否可用 is-enabled属性是可选的,声明该侧边栏是否可用,允许值为:true | false ,默认为true。 当侧边栏不可用时,拖拽内容或使用切换按钮都无法打开侧栏菜单。

expose-aside-when - 侧边栏自动显示条件表达式

默认情况下,侧边栏是隐藏的,需要用户向左或向右拖动内容,或者通过一个切换按钮来打开。 但是在有些场景下(比如,横放的平板)屏幕宽度足够大,这时,自动地显示侧边栏内容会更 合理。

5、脚本中控制侧边栏菜单接口 : $ionicSideMenuDelegate

脚本中控制侧边栏菜单接口,可以使用服务$ionicSideMenuDelegate:
toggleLeft([isOpen]) - 是否打开左侧栏菜单
参数isOpen是可选的,默认为true ,表示打开左侧栏菜单。
toggleRight([isOpen]) - 是否打开右侧栏菜单
参数isOpen是可选的,默认为true ,表示打开右侧栏菜单。
getOpenRatio() - 侧栏菜单打开的宽度占其总宽度比例
例如,一个100px宽的侧栏菜单,如果打开50px,那么其比例为50%,getOpenRatio()将 返回0.5 。
isOpen() - 当前侧栏菜单是否打开
不管是左侧栏菜单,还是右侧栏菜单,只要处于打开状态,isOpen()都返回 true。
isOpenLeft() - 左侧栏菜单是否打开
当左侧栏菜单处于打开状态时,isOpenLeft()返回true。
isOpenRight() - 右侧栏菜单是否打开
当右侧栏菜单处于打开状态时,isOpenRight()返回true。
canDragContent([canDrag]) - 是否允许拖拽内容以打开侧栏菜单
canDrag参数是可选的,如果canDrag为true,表示允许通过拖拽内容打开侧栏菜单。
edgeDragThreshold(value) - 设置边框距离阈值
当参数value为false或0时,意味着在内容区域任何位置进行拖拽都可以打开侧栏菜单。 如果参数value为一个数值,意味着只有当拖拽发生的位置距边框不大于此数值时,才能打开 侧栏菜单。 参数value为true等同于将value设置为25。

6、脚本ion-tap结合 ion-side-menus一起使用

十八、ionic列表

1、列表 : ion-list

ion-list指令提供以下属性用来定制列表的外观:

type - 列表种类 type属性是可选的,可用来设置列表的种类: list-inset | card。这两种列表 都产生内嵌的效果,区别在于card列表有边框的阴影效果。

show-delete - 是否显示成员内的delete按钮 show-delete属性是可选的。如果在成员内有delete按钮(ion-delete-button),使用这个 属性来通知列表是否显示元素删除按钮。允许的值为:true | false

show-reorder - 是否显示成员内的reorder按钮 show-reorder属性是可选的。如果在成员内有reorder按钮(ion-reorder-button),使用这个 属性来通知列表是否显示元素重排序按钮。允许的值为:true | false

can-swipe - 是否支持滑动方式显示成员option按钮 can-swipe属性是可选的。如果在成员内有option按钮(ion-option-button),使用这个 属性来允许或禁止通过向左滑动成员来打开option按钮。允许的值为:true | false ,默认为true。

2、ion-list ion-item 成员

ion-option-button - 选项按钮。一个ion-item内可以包含多个选项按钮

ion-delete-button - 删除按钮。一个ion-item内最多有一个删除按钮

ion-reorder-button - 重排按钮。一个ion-item内最多有一个重排按钮

3、collection-repeat : 高性能的ng-repeat

collection-repeat指令接受一个枚举表达式,同时可以附加以下的属性:

item-width - 可选。声明重复元素的宽度 item-height - 可选。声明重复元素的高度

item-render-buffer - 可选。需要载入渲染缓冲区的可视数据前后的数量。默认为3

force-refresh-images - 可选。滚动时是否强制刷新图像。允许值:true | false

4、脚本接口 : $ionicListDelegate

如果需要从脚本中控制列表元素,可以使用$ionicListDelegate服务:

showReorder([showReorder]) - 显示/关闭排序按钮

showReorder的允许值为:true | false。可以使用一个作用域上的表达式

showDelete([showDelete]) - 显示/关闭删除按钮

showDelete的允许值为: true | false。可以使用一个作用域上的表达式

canSwipeItems([canSwipeItems]) - 是否允许通过滑动方式来显示成员选项按钮

canSwipeItems的允许值为:true | false。可以使用一个作用域上的表达式

closeOptionButtons() - 关闭所有选项按钮

十九、ionic表单输入ion-checkbox ion-radio ion-toggle ion-spinner

1.复选按钮 : ion-checkbox

2.单选按钮 :ion-radio

3. 开关按钮 : ion-toggle

4.等待指示器 : ion-spinner

二十、ionic动态组件 $ionicModal $ionicActionSheet $ionicPopup $ionicPopover $ionicLoading $ionicBackdrop

1.模态对话框 : $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

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

titleText - 上拉菜单的标题文本

buttons - 自定义按钮数组。每个按钮需要一个描述对象,其text字段用于按钮显示

cancelText - 取消按钮的文本。如果不设置此字段,则上拉菜单中不出现取消按钮

destructiveText - 危险选项按钮的文本。如果不设置此字段,则上拉菜单中不出现危险选项按钮

buttonClicked - 自定义按钮的回调函数,当用户点击时触发 cancel - 取消按钮回调函数,当用户点击时触发

destructiveButtonClicked - 危险选项按钮的回调函数,当用户点击时触发

cancelOnStateChange - 当切换到新的视图时是否关闭此上拉菜单。默认为true

cssClass - 附加的CSS样式类名称

3.弹出框 : $ionicPopup

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

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

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

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

title - 弹出框标题文本

subTitle - 弹出框副标题文本

template - 弹出框内容的字符串模板

templateUrl - 弹出框内容的内联模板URL

scope - 要关联的作用域对象

buttons - 自定义按钮数组。按钮总是被置于弹出框底部

cssClass - 附加的CSS样式类

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

4.浮动框 : $ionicPopover

show() - 显示浮动框

hide() - 关闭浮动框

remove() - 移除浮动框

isShown() - 浮动框是否处于显示状态?

5.载入指示器 : $ionicLoading

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

show(options) - 显示载入指示器

hide() - 隐藏载入指示器
显示参数 show()方法的options参数是一个JSON对象,可以包含如下字段:

template - 模板字符串

templateUrl - 内联模板的Url

scope - 要绑定的作用域对象

noBackdrop - 是否隐藏背景幕

hideOnStateChange - 当切换到新的视图时,是否隐藏载入指示器

delay - 显示载入指示器之前要延迟的时间,以毫秒为单位,默认为0,即不延迟

duration - 载入指示器持续时间,以毫秒为单位。时间到后载入指示器自 动隐藏。默认情况下, 载入指示器保持显示状态,知道显示的调用hide()方法

6.背景幕 : $ionicBackdrop

retain() - 保持背景幕

release() - 释放背景幕

二十一、ionic幻灯指令 ion-slide-box

1、ion-slide-box : 属性设置定制播放行为

指令ion-slide-box有一些可选的属性可以定制其播放行为:

》does-continue - 是否循环切换

你可能注意到,刚才的示例中,开头的幻灯页只能向左滑动,最后的幻灯页只能向右滑动。 将does-continue属性值设为true,就可以让幻灯页组首尾连接起来,循环切换。

》auto-play - 是否自动播放

通过将auto-play属性设置为true,可以让幻灯页自动切换。切换的间隔默认是4000ms,可以 通过属性slide-interval进行调整。

》slide-interval - 自动播放的间隔时间,默认为4000ms

》show-pager - 是否显示分页器 分页器用来指示幻灯页的选中状态,位于幻灯片的底部。 允许值为:true | false

2、ion-slide-box : 事件及变量

指令ion-slide-box提供了可选的用于事件监听的属性:

pager-click - 分页器点击事件

pager-click属性应当设置为一个当前作用域上的函数调用表达式,这个函数将被 传入被点击的分页按钮对应的幻灯页序号:index

on-slide-changed - 幻灯页切换事件

on-slide-changed属性应当设置为一个当前作用域上的函数调用表达式,这个函数 将被传入当前幻灯页的序号:$index

active-slide - 当前幻灯页索引

active-slide属性应当设置为一个当前作用域上的变量,当幻灯片切换时,这个变 量同步的反应当前的幻灯页索引号

3、脚本接口: $ionicSlideBoxDelegate

可以使用服务$ionicSlideBoxDelegate在脚本中操作幻灯片对象:

update() - 重绘幻灯片

有时,比如当容器尺寸发生变化时,需要调用update()方法重绘幻灯片。

slide(to[,speed]) - 切换到指定幻灯页 参数to表示切换的目标幻灯页序号,参数speed是可选的,表示以毫秒 为单位的切换时间

enableSlide([shouldEnable]) - 幻灯片使能 参数shouldEnable的允许值为:true | false 。

previous() - 切换到前一张幻灯页

next() - 切换到后一张幻灯页

currentIndex() - 获得当前幻灯页的序号

slideCount() - 获得全部幻灯页的数量

观《phonegap第三季 angularjs+ionic视频教程 实时发布》学习笔记(三)的更多相关文章

  1. ucos实时操作系统学习笔记——操作系统在STM32的移植

    使用ucos实时操作系统是在上学的时候,导师科研项目中.那时候就是网上找到操作系统移植教程以及应用教程依葫芦画瓢,功能实现也就罢了,没有很深入的去研究过这个东西.后来工作了,闲来无聊就研究了一下这个只 ...

  2. ucos实时操作系统学习笔记——任务间通信(信号量)

    ucos实时操作系统的任务间通信有好多种,本人主要学习了sem, mutex, queue, messagebox这四种.系统内核代码中,这几种任务间通信机制的实现机制相似,接下来记录一下本人对核心代 ...

  3. ucos实时操作系统学习笔记——内核结构和任务创建

    对于ucos实时操作系统,邵贝贝的那本书已经写得很详细了,我因为之前不深的研究过ucos,所以在这里做一个笔记,写一些个人对该操作系统的理解,仅仅是个人理解,如果有人看到这边随笔有不对的地方,望给我指 ...

  4. Ionic学习笔记三 Gulp在ionic中的使用

    简介 Gulp是一个基于流的自动化构建器. 安装 npm config set registry http://registry.npm.taobao.org ---最好用国内源 npm instal ...

  5. angularjs学习笔记三——directive

    AngularJS 通过被称为 指令 的新属性来扩展 HTML. 正如你所看到的,AngularJS 指令是以 ng 作为前缀的 HTML 属性. HTML5 允许扩展的(自制的)属性,以 data- ...

  6. RTX51 Tiny实时操作系统学习笔记—初识RTX51 Tiny

     一,RTX51 Tiny简单介绍    RTX51 Tiny是一种实时操作系统(RTOS),能够用它来建立多个任务(函数)同一时候运行的应用(从宏观上看是同一时候运行的,但从微观上看,还是独立运行的 ...

  7. jw player学习笔记三---发布到其它网站

    一.通过官网发布向导 登陆 http://www.longtailvideo.com,注册一个账号,进入你的用户管理中心,如下图 然后按提示,一步步操作,就会得到js代码了. 二.自己服务器发布 &l ...

  8. ucos实时操作系统学习笔记——任务间通信(消息)

    ucos另一种任务间通信的机制是消息(mbox),个人感觉是它是queue中只有一个信息的特殊情况,从代码中可以很清楚的看到,因为之前有关于queue的学习笔记,所以一并讲一下mbox.为什么有了qu ...

  9. ucos实时操作系统学习笔记——任务间通信(队列)

    ucos操作系统中的queue机制同样使用了event机制来实现,其实和前面的sem,mutex实现类似,所不同的是对sem而言,任务想获得信号量,对mutex而言,任务想获得的是互斥锁.任务间通信的 ...

随机推荐

  1. 2.Stacks(堆栈)

    一.概述 C++ Stack(堆栈) 是一个容器类的改编,为程序员提供了堆栈的全部功能,也就是说实现了一个先进后出(FILO)的数据结构. 二.常用API empty() 堆栈为空则返回真 pop() ...

  2. Thrall’s Dream 第四届山东省省赛 (直接暴力DFS)

    题目链接:题目 AC代码: #include<iostream> #include<algorithm> #include<vector> #include< ...

  3. javascript的弹框

    学习js最先了解到的两种种简单测试手段就是alert("blah");和console.log("blah");了. 除了alert之外,js还有两种弹框 co ...

  4. linux学习笔记13--命令head和tail

    head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾. 1.命令格式: hea ...

  5. JVM Specification 9th Edition (4) Chapter 4. The class File Format

    Chapter 4. The class File Format Table of Contents 4.1. The ClassFile Structure 4.2. Names 4.2.1. Bi ...

  6. SonarQube代码质量管理平台安装与配置

    1.安装说明 操作用户:root 软件下载目录:/root/opt 无root权限时,放到自定义目录即可 ================ 2.预置条件 1.需要JDK1.6+支持: 2.需要Mysq ...

  7. 微信小程序动态显示项目倒计时效果

    效果: wxml代码: <view class='spellNum'> <view> <text style='color: #fff;'>团长</text& ...

  8. java程序调用kettle

    (1).将相应的kettle的jar包导入的java项目,主要的jar包有一下几个. (2).java程序. package cn.com.taiji.oosweb.test.web; import ...

  9. SSH框架-Struts2基础-Action

    Struts2的目录结构: 解压apps目录下的struts2-blank.war: 仿照这个最基本的项目,拷贝相关文件: 1.拷贝apps/struts2-blank/WEB-INF/classes ...

  10. 【vijos】1789 String(组合计数+奇怪的题)

    https://vijos.org/p/1789 我yy了一下发现我的方法没错啊,为嘛才80分..(后来看了题解,噗,还要判断k>n和k=1的情况QAQ 当k=1的时候,答案显然是m^n 当k& ...