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学习笔记的更多相关文章

  1. Ionic2学习笔记(10):扫描二维码

    作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5575843.html 时间:6/11/2016     说明: 在本文发表的时候(2016-06-1 ...

  2. Ionic2学习笔记(9):访问本地设备

    作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5559927.html               Ionic2提供了访问本地设备的方法,但是需要安装 ...

  3. Ionic2学习笔记(8):Local Storage& SQLite

    作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5557947.html              Ionic2可以有两种方式来存储数据,Local S ...

  4. Ionic2学习笔记(7):Input

    作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5554610.html           我们先来看一个简单的输入用户名和密码点击登录的界面:   ...

  5. Ionic2学习笔记(6):Navigation

    作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5551535.html           Ionic2中创建一个页面很方便,在页面之间相互切换也很方 ...

  6. Ionic2学习笔记(5):Provider

    作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5547646.html             Provider是一种为App提供数据源的方式, 举个 ...

  7. Ionic2学习笔记(0):HelloWorld

    作者:Grey 原文地址:http://www.cnblogs.com/greyzeng/p/5529153.html 操作系统: Windows 10 环境配置: Node.js Java SE D ...

  8. Ionic2学习笔记(4):*号

    作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5544479.html                     大家常常会在ionic2页面中见到*号 ...

  9. Ionic2学习笔记(3):Pipe

    作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5538630.html Pipe类似过滤器,比如,在一个字符串要展现在页面之前, 我们需要对这个字符串 ...

  10. Ionic2学习笔记(2):自定义Component

    作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5536298.html                     上一篇提到,Ionic2提供了很多Co ...

随机推荐

  1. Mysql VARCHAR的最大长度到底是多少

    MySQL 数据库的varchar类型在4.1以下的版本中的最大长度限制为255,其数据范围可以是0~255或1~255(根据不同版本数据库来定).在 MySQL5.0以上的版本中,varchar数据 ...

  2. React Native 一个组件styles BUG

    'use strict'; var React = require('react-native'); var { StyleSheet, PanResponder, View, Text } = Re ...

  3. html xml

    XML被设计用来携带数据. XML不是用来替代HTML的.XML和HTML为不同的目的而设计: XML被设计用来描述数据,其焦点是数据的内容. HTML被设计用来显示数据,其焦点是数据的外观. HTM ...

  4. AndroidStudio快捷键

    在这里,自己整理了下在使用AndroidStudio开发工具所使用到的一些快捷键提示,也出于在开发过程中节省时间提升效率,然而可能多数开发者之前使用的都是Eclipse开发工具,可能开始都不习惯,但是 ...

  5. 用Javascript动态添加删除HTML元素实例 (转载)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. python3下载远程代码并执行

    第一步: 先在gist之类的网站上贴上代码,目的不是高亮,而可以raw的形式获取代码,这样可以省掉处理html的时间,我这里用的是pasteraw: 远程上的代码:http://cdn.pastera ...

  7. 为什么 input 元素能用 width 属性

    前几天在是写网页的时候发现input可以设置宽高,很疑惑,上网查了之后发现: 简单的认为 input 就是 inline 元素是片面的.元素默认以何种 display 属性值显示出来,这个其实更多的时 ...

  8. oracle问题

    (1) 连通性: 注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,压力较小 监控中心负责统计各服务调用次数,调用时间等,统计先在内存汇 ...

  9. github的使用步骤及体会

      对于github的readme文件的提交,很是坎坷.   首先打开了github的首页,对于满屏的英文,我是头大的.百度搜索教程,百度翻译等等,这些都使用上了.带着试一试的态度,我按了creat ...

  10. iOS一些常用的小知识点

    //获取全局的Delegate对象,这样我们可以调用这个对象里的方法和变量 [[UIApplication sharedApplication] delegate]; //获得程序的主Bundle N ...