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来进行监听。

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:不建议使用。

时间: 2025-01-02 18:02:08

Ionic2学习笔记的相关文章

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

作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5575843.html 时间:6/11/2016 ? ? 说明: 在本文发表的时候(2016-06-11),Ionic2是beta版本,所有还是会有一些改动比较大的地方: 点击查看 , 比如beta8版本(2016-06-06),相较于前面的版本就有一个特别大的改动的地方: @App and @Page should be replaced with @Component 基于这种情况,大家还是静静

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

作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5557947.html ? ? ? ? ?Ionic2可以有两种方式来存储数据,Local Storage和SQLite ? LocalStorage ? 因为比较容易访问,所以不适合存比较敏感性的数据 比如可以存储: 用户是否登录的信息. 一些session信息等 具体用法: 进入项目目录:cd MyFirstApp 在主页设置一个按钮,点击按钮,获取LocalStorage的数据并打印在控制台

Ionic2学习笔记(7):Input

作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5554610.html ? ? ? 我们先来看一个简单的输入用户名和密码点击登录的界面: ? 进入项目目录:cd MyFirstApp 修改主页代码: app/pages/home/home.html 预览一下效果:ionic serve -l 我们有两种方式来获取输入的数据: ? 第一种:通过[(ngModel)]来获取参数值,修改home.html的代码为如下形式 在home.ts增加一个获取用

Ionic2学习笔记(6):NAVIGATION

作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5551535.html ? ? ? ?Ionic2中创建一个页面很方便,在页面之间相互切换也很方便,我们在实现如下需求: 在主页面创建一个按钮,点击按钮,跳转到一个新页面,在跳转过程中,我们可以也可以在页面之间传递数据. 进入项目目录:cd MyFirstApp 创建一个新页面: ionic g page SecondPage 将@import "../pages/second-page/secon

Ionic2学习笔记(3):Pipe

作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5538630.html ? ? ? ? ? ? Pipe类似过滤器,比如,在一个字符串要展现在页面之前, 我们需要对这个字符串进行一些操作,比如:将字符串转化为大写,加一个前缀/后缀-- Pipe的作用就是来实现类似的需求: 模型如下: ? ? ? 假设一个字符串: "hello", 我们在展示这个字符串的时候,需要先转换为大写, 然后加一个后缀 " WORLD", 最

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

作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5559927.html ? ? ? ? Ionic2提供了访问本地设备的方法,但是需要安装Cordova依赖,我们以调用摄像头拍照为例来说明: 进入项目目录:cd MyFirstApp npm install ionic-native –save 增加调用Camera的插件:ionic plugin add cordova-plugin-carmera 在Home.html中,增加如下代码: 点击b

Ionic2学习笔记(3):*号

作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5544479.html ? ? ? ? ? ? 大家常常会在ionic2页面中见到*号的存在,如: <p *ngIf="someBoolean"><p> 含义与: <template [ngIf]="someBoolean"> <p></p> </template> 一样, 即:如果someBool

Ionic2学习笔记(5):Provider

作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5547646.html ? ? Provider是一种为App提供数据源的方式, 举个例子: 我们从: https://www.reddit.com/r/gifs/top/.json?limit=10&sort=hot 获取Json格式的数据,并在程序启动的时候,在控制台打印获取的数据信息: 进入项目目录:cd MyFirstApp 创建一个Provider:ionic g provider New

vector 学习笔记

vector 使用练习: /**************************************** * File Name: vector.cpp * Author: sky0917 * Created Time: 2014年04月27日 11:07:33 ****************************************/ #include <iostream> #include <vector> using namespace std; int main