Ionic2学习笔记
Component
nav:
<ion-nav [root] = 'rootComponent'></ion-nav>
....
import {Nav} from 'ionic-angular';
....
export class AppComponent{
@ViewChild(Nav) private nav:Nav;
push(){
nav.push(PageOne,{id:1,name:'ztw'});
}
} @Component({template:`<p>{{show}}</p><button (click)='goBack()'> back</button>`})
export class PageOne{
show:string
constructor(
private:navParams:NavParams,
private:navCtrl:NavController
){}
ngOnInit(){
let name:string=navParams.get(name);
let id:number=+navParams.get(id);
this.show=`name : ${name} , id: ${id}`;
};
goBack(){
this.navCtrl.pop(); //this.navCtrl.popToRoot(); 回到root
}
}
可以通过@ViewChild(Nav)navCtrl,访问内部属性;
navCtrl.setRoot(component:Component) ; //其实等同于rootComponent=component ;
.pop(); //等同于new ViewController().dismiss();
.push(component, {param:value} ,...); //通过 new NavParams().get(param)获得
.insert(index,component,{param:value},...);
Menu:
<ion-menu [content]='content' silde='right' id='authenticated'>
<button menuClose> close</button>
<button menuOpen>open</button>
<button menuToggle>toggle</button>
</ion-menu>
<ion-menu silde='left' id='unauthenticated'> </ion-menu>
<nav-ion #content> <nav-ion>
属性:
import {MenuControll} from 'ionic-angular';
new MenuControll().open()
.close()
.toggle('left') ;//多个menu,且不在同一位置时,可使用位置来控制;
.enable(ture,'authenticated'); //多个menu时,以ID来控制。
ViewController:
属性:
willEnter; ngOnChanges
didEnter ; ngOnInit
willLeave; before unActive
didLeave; after unActive
willUnload; after ngOnDestroy;
// all return Observable ;使用:
this.viewCtrl.didEnter.subscribe(val=>{console.log('didEnter')});
事件:
onDidDismiss();OnWillDismiss();
方法:
dismiss();
.....
alerts:
let alertCtrl=new AlertController();
alertCtrl.create({
title:'alert msn',
message:' msn'
buttons:[
{text:' ok' ,
hanlder:data=>{console.log(data)},
}] ,
inputs:[
{type:'text',name:'name',placeholder:'account'},
]
})
类似于绑定了一个#form='ngForm' 或者 [fromGroup]='form';
而每个button的hanlder中返回的data,则为form.value;
Config:
import {IonicModule} from 'ionic-angular';
@NgModule({
imports:[
IonicModule.forRoot(MyApp,opt,DeepLinkers)
]
})
opt={ iocnMode:'ios' , modelEnter:'model-silde-in'};
DeepLinkers;
Ionic2中的页面导航不显示在URL上。
而在DeepLinkers中设置了的component,可以在url上导航,as a breadCrumb。
DeepLinkers={ links:[{component:PageComponent,name:'page' , segment : 'pageOne' , defualtHistory:'HomePage'}]} //url为http://localhost:8100/#/pageOne;
defualtHistory:PageComponent在没有设置返回时,会自动设置back button。导航至HomePage.
InfiniteScroll && Refresher:
...
template:`
<ion-content>
<ion-list><ion-item></ion-item></ion-list>
<ion-infinite-scroll (ionInfinite)='do($event)'>
<ion-infinite-scroll-content loadingSpinner='' loadingText=''>
//<ion-refresh-content refreshSpinner='' refreshText=''></..> </ion-infinite-scroll-content>
</ion-infinite-scroll>
</ion-content>
`
......
export class Page{
.......
do(inifinate){
if(end) return inifinate.enable(false);
Http.get(...);
inifinate.complate();
}
}
ion-infinite-scroll-content:控制载入等待时的样式;
没有data可供加载时,使用inifinate.enable(false),使其失效。
refresher使用方法大致相同,用于向上刷动。
RadioGroup:
<ion-list radio-group [(ngModel)]='getRadio'>
<ion-item>
<ion-label> one</ion-label>
<ion-radio value='one'> </ion-radio>
</ion-item>
</ion-list>
设置了radio-group后,getRadio可获得选中值,radio-group为单选。
Segment:
<form [formGroup]='form'>
<ion-segment [formControlName] ='"segment"'> // 也可以使用<ion-segment [(ngModel)]='getSegment'>将button的value连接到getSegment. <ion-segment-button value='one' >one </..>
<ion-segment-button value='two'>two </..>
</ion-segment>
使用formGroup;可以直接使用this.form.form.get('segment').valueChanges来进行监听。
我的例子:https://github.com/zhantewei2/Ionic2-example-notes/tree/master/pages/testSegment
这个例子是一个比较笨拙的方法。
<ion-segment [ngModel]='segment' (ngModelChange)='Changed($event)'>使用这样可以,对value改变事件进行监听。
ItemSliding:
<ion-item-sliding #slide (ionDrag)='drag($event)'>
<ion-item-option icon-left (ionSwipe)='Swiped()'>
<button item-button (click)='close(slide)'>
<item-icon name='archive'></item-con>
button
</button>
</ion-item-option> export class Test{
subject:any;
ngOnInit(){
this.subject=Subject.thrrotleTime(300).subscribe(val=>{console.log(val)})
}
drag(e){
this.subject.next(e.getSlidingPercent()); //获得item-sliding的滑动范围。
}
close(node){
node.close() //关闭item-sliding
}
}
方法.close();
事件:ionDrag();
<ion-item-option> :ionSwipe(); //滑动成功时触发。
ionReorder:不建议使用。
Ionic2学习笔记的更多相关文章
- Ionic2学习笔记(10):扫描二维码
作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5575843.html 时间:6/11/2016 说明: 在本文发表的时候(2016-06-1 ...
- Ionic2学习笔记(9):访问本地设备
作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5559927.html Ionic2提供了访问本地设备的方法,但是需要安装 ...
- Ionic2学习笔记(8):Local Storage& SQLite
作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5557947.html Ionic2可以有两种方式来存储数据,Local S ...
- Ionic2学习笔记(7):Input
作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5554610.html 我们先来看一个简单的输入用户名和密码点击登录的界面: ...
- Ionic2学习笔记(6):Navigation
作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5551535.html Ionic2中创建一个页面很方便,在页面之间相互切换也很方 ...
- Ionic2学习笔记(5):Provider
作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5547646.html Provider是一种为App提供数据源的方式, 举个 ...
- Ionic2学习笔记(0):HelloWorld
作者:Grey 原文地址:http://www.cnblogs.com/greyzeng/p/5529153.html 操作系统: Windows 10 环境配置: Node.js Java SE D ...
- Ionic2学习笔记(4):*号
作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5544479.html 大家常常会在ionic2页面中见到*号 ...
- Ionic2学习笔记(3):Pipe
作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5538630.html Pipe类似过滤器,比如,在一个字符串要展现在页面之前, 我们需要对这个字符串 ...
- Ionic2学习笔记(2):自定义Component
作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5536298.html 上一篇提到,Ionic2提供了很多Co ...
随机推荐
- AnyCAD.NET C#开发CAD软件实践(一)
免费的AnyCAD.NET发布了!俺喜欢的C#有了大展前途的机会了. 打算用这个框架搭建一套实用的CAD系统,目标是能买出去10套以上. 先看看AnyCAD.NET的自我介绍. http://www. ...
- serialize和unserialize函数
序列化是将变量转换为可保存或传输的字符串的过程:反序列化就是在适当的时候把这个字符串再转化成原来的变量使用.这两个过程结合起来,可以轻松地存储和传输数据,使程序更具维护性.1. serialize和u ...
- apache 重定向
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTPS} !=on RewriteRule ^(.*) https:// ...
- 黑马程序员——C语言基础 流程控制 选择结构和循环结构
---恢复内容开始--- Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)流程控制 1> 顺序结构:默认的流程 ...
- iOS 页面显示在键盘之上
美丽又可爱的UED妹子文晓的给我提了一个问题,就是在键盘升起的时候,添加的加载页面(loading)被键盘挡住了. 看到问题之后我就想到了问题的所在,因为以前我可敬可爱的领导给我们科普过,说UIAla ...
- 算法-MergeSort
#include <iostream> #include <vector> #include <iterator> using namespace std; ; v ...
- UI数据库
一.数据库 SQL: SQL是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集, 是一种功能齐全的数据库语言. 二.数据库管理系统 数据 ...
- 横向滑动的GridView
思路: GridView行数设置为一行,外面套一个HorizontalScrollView,代码中设置GridView宽度 xml代码 <HorizontalScrollView android ...
- Android -- 关闭AsyncTask(异步任务)
前面说了如何操作AsyncTask,这篇我们来说一下如何关闭AsyncTask. 有人就问了:为什么要关闭AsyncTask呢?很简单,AsyncTask 是在后台执行耗时操作(获取数据),当你离开当 ...
- Mvc api HelpPage 与注释
一.添加包Microsoft.AspNet.WebApi.HelpPage可以自动给api生成帮助页面,url:/help 二.help加注释: 1. 2. public static class H ...