ionic的学习

2017-11-07  本文已影响0人  怯言ouo

# 配置ionic cordova:

用node -v检查是否安装node,

//-g是全局安装

1.首先安装cnpm:


npm install -g cnpm --registry=https://registry.npm.taobao.org  
安装成功使用cnpm -v 测试版本

2.安装ionic cordoava:

cnpm i -g ionic cordova

安装完成使用ionic -v 测试版本
如果出现Dependency warning错误,则说明cordova 没有安装好 ,
重新执行cnpm i -g cordova安装,使用cordova --version测试版本```

3.一些常用命令

ionic serve  使app跑起来

ionic  g  page  新建页面

富文本

 <p  [innerHTML]="params"></p>
image.png

ion-item

文本不会换行问题,利用CSS white-space 属性:

normal  默认。空白会被浏览器忽略。
pre 空白会被浏览器保留。其行为方式类似 HTML 中的 <pre> 标签。
nowrap  文本不会换行,文本会在在同一行上继续,直到遇到 <br> 标签为止。
pre-wrap    保留空白符序列,但是正常地进行换行。
pre-line    合并空白符序列,但是保留换行符。
inherit 规定应该从父元素继承 white-space 属性的值。

路由传参:

可以使用NavParams(从头部传递参数)获取到其他页面传至本页面的值,例如列表页传参至详情页

list.ts
this.navCtrl.push(DetailPage, {
    key1: value1,
    key2: value2
});
detail.ts
constructor(public navParams: NavParams) {
        const data = this.navParams.data;
        const value1 = this.navParams.get(‘key1‘);
        const value2 = this.navParams.get(‘key2‘);
    }

上拉加载组件: ion-infinite-scroll

image.png

concat()

image.png
image.png

input数据双向绑定:

①、使用[(ngModel)]进行双向数据绑定:

home.html:

<ion-content>
  <ion-input type="text" [(ngModel)]="myInput"></ion-input>
  <button ion-button (click)="logInput()">提交输入</button>
</ion-content>

home.ts:

export class HomePage {
  myInput:string;
  logInput(){
     console.log(this.myInput);
  }
}
②使用Form Builder一次处理多个用户输入:

Form Builder是Angular 2提供的一个服务。使用它可以一次处理多个输入,而且可以对用户输入进行验证,比如检查用户输入的Email地址是否合法。
1.修改home.html模板文件,添加一个form表单,代码参考如下:

<ion-content>
  <form [formGroup]="myForm" (submit)="saveForm($event)">
    <ion-item>
       <ion-label stacked>Field 1</ion-label>
       <ion-input formControlName="field1" type="text"></ion-input>
    </ion-item>
    <ion-item>
       <ion-label stacked>Field 2</ion-label>
       <ion-input formControlName="field2" type="text"></ion-input>
    </ion-item>
    <ion-item>
       <ion-label stacked>Field 3</ion-label>
       <ion-input formControlName="field3" type="text"></ion-input>
    </ion-item>
    <button ion-button type="submit">提交</button>
  </form>
</ion-content>

2.修改home.ts类文件,对表单初始化,接收用户提交的数据,代码参考如下:

import { FormBuilder,FormGroup,Validators } from '@angular/forms';
export class HomePage {
  public myForm:FormGroup;
  constructor(public formBuilder:FormBuilder) {
     this.myForm=this.formBuilder.group({
         field1:['',Validators.required],
         field2:[''],
         field3:['']
     });
  }
  saveForm(event){
    event.preventDefault();
    console.log(this.myForm.value);
  }
}

本地存储:

①ionic自带本地存储

app.module.ts

import { IonicStorageModule } from '@ionic/storage';

@NgModule({
  imports: [
    IonicStorageModule.forRoot()
  ],
})

接着注入到您的任何组件或页面中,例如
login.ts

import { Storage } from '@ionic/storage';
export class MyApp {
  constructor(private storage: Storage) { }
//存储
  storage.set('name', 'Max');
//取值
  storage.get('age').then((val) => {
//val为异步,无法取出,只能在此方法中使用,也不能赋值在方法外使用
    console.log('Your age is', val);
  });
}
②js原生存储

一、关闭电脑时删除

//存到本地
localStorage.setItem('token',res.datas);
//从本地取值
localStorage.getItem('token');

二、关闭页面时删除

//存到本地
sessionStorage.setItem('token',res.datas);
//从本地取值
sessionStorage.getItem('token');
上一篇下一篇

猜你喜欢

热点阅读