ionic基础一

1. 创建ionic项目

https://ionicframework.com/getting-started

1)进入一个文件夹下,执行ionic start myApp tabs生成带table标签的项目架构


2)生成的项目下没有该文件夹,需要执行npm install生成项目必须文件


3)新建页面:ionic g page NewPage  新建了一个NewPage名称的文件夹。还需要在app.module.ts中引入相关ts文件

4rootpage最好设置为登录页面,在通过登录页面的登录方法进入其他页面。

   如果把菜单页面或首页设置为app.Html是读取不到用户相关信息的,即app.html只能在项目启动时进入一次如果这个页面中有什么需要登录用户信息后才可以显示的数据则不能回显出来(不知道是不是这样,但是遇见过这种问题)

5<ion-item>

<ion-label class="color-css">提供人员</ion-label>

<div item-content class="width-div">{{clueObj.provider}}</div>

</ion-item>

Ionic手机上的一行使用ion-item标签。Ion-label代表行的开头

ts中定义clueObj这个对象。页面通过双{}显示出来

6<ion-item [ngStyle]="{'display': status == '0' ? 'block':'none' }">

<button ion-button item-start (click)="clueEdit()" style="width:100%">编辑</button>

<button ion-button item-start (click)="close()" style="width:100%">关闭</button>

<button ion-button item-start (click)="toChance()" style="width:100%">转为机会</button>

</ion-item>

在后台定义一个status==0’,block是显示,none是不显示。相等执行?前面的。不相等执行?后面的。前面的display是固定的属性名称

 

click=””代表点击函数

 

7constructor(public navCtrl: NavController, public navParams: NavParams,

public comUtil: CommonUtilProvider,public userProvider: UserInfoProvider) {

this.clueObj = navParams.get('clue');

constructor代表构造函数。

NavController用来跳转页面,前面的page代表ts的类名。后面括号里的代表传递的参数

this.navCtrl.push(ClueEditPage, { 'clue': this.clueObj, 'flag': '1' });

NavParams用来获取上下文的数据,即跳转页面时传递的参数通过这个方法获取

this.clueObj = navParams.get('clue');

 

 

8

<form [formGroup]="clueForm" (submit)="saveForm($event)">

<ion-item>

<ion-label>线索名称</ion-label>

<ion-input formControlName="clueName" type="text" clearInput></ion-input>

</ion-item>

<ion-item>

<ion-label>线索描述</ion-label>

<ion-textarea formControlName="clueDesc" type="text" rows="5" cols="25"></ion-textarea>

</ion-item>

<button ion-button full type="submit" style="width: 90%;font-size: 22px;margin: 0 5%;">提交</button>

</form>

 

页面的form表单通过formGroup来对应。formControlName代表标签id

Ts中引入该表单

public clueForm: FormGroup;

构造函数中初始化表单

public formBuilder: FormBuilder,

 

this.clueForm = this.formBuilder.group({

clueName: ['', Validators.required],

clueCompany: ['', Validators.required],

provider: [this.user.returnuserName(), Validators.required],

clueDesc: ['', Validators.required],

clueChannel: ['', Validators.required],

assigns: ['', Validators.required],

});

 

 

9JSON.stringify(list)

转换成json格式的

console.log('线索查询指派人名称:' + JSON.stringify(this.assignorArray));

 

10this.clueForm.value.id 

获取表单里的id字段的值

 

11<ion-item>

<ion-label>线索公司</ion-label>

<ion-select formControlName="clueCompany" okText="确定" cancelText="取消">

<ion-option [value]="item.clueCompany" *ngFor="let item of clueConmpany">{{item.clueCompany}}</ion-option>

</ion-select>

</ion-item>

下拉菜单:ion-select  formControlName代表的是下面的value

*ngFor="let item of clueConmpany"

循环遍历

 

12<div>

<ion-searchbar [(ngModel)]="searchQuery" (input)="saveForm($event)"></ion-searchbar>

</div>

搜索框标签:ion-searchbar  input)代表搜索改变后调用的函数方法

 

saveForm(ev: any) {

event.preventDefault();

let serviceName = '/clue/listSearch';

this.cluesArray2 = [];

for (let i = 0; i <this.cluesArray.length; i++) {

if(this.cluesArray[i].clueName.indexOf(ev.target.value)!=-1){

 

ev.target.value

代表搜索框中输入的值

 

13(ngModelChange)="switchProvince($event)

js方法中的onchange类似,当该标签的值改变时调用函数

<ion-select formControlName="decChainStaff" okText="确定" ng-model="dec" cancelText="取消" (ngModelChange)="switchProvince($event)">

<ion-option *ngFor="let item of descionArray" [value]="item.decChainStaff">

{{item.decChainStaff}}

</ion-option>

</ion-select>

 

14)轮播图:

<!-- start 轮播图 -->

<!-- <ion-slide-box></ion-slide-box> -->

<ion-slides pager class="sliderBanner" (ionSlideDidChange)="slideChanged()">

<ion-slide>

<img src="assets/imgs/banner.png" />

</ion-slide>

<ion-slide>

<img src="assets/imgs/banner.png" />

</ion-slide>

<ion-slide>

<img src="assets/imgs/banner.png" />

</ion-slide>

</ion-slides> 

<!-- end 轮播图 -->

相关ts方法:

   //轮播

@ViewChild(Slides) slides: Slides;

slideChanged() {

//每一张图片可以添加事件

}

ngAfterViewInit() {

// this.slides.freeMode = true;

this.slides.loop = true;//循环

this.slides.autoplay = '10000';//2秒自动播放

this.slides.speed = '500';//一张动画时间500毫秒

this.slides.autoplayDisableOnInteraction = false;//注意此参数,默认为true--自动轮播时手动滑动不再轮播

}

 

 

 

15)Ionic省市县三级联动选择

  地址:https://www.cnblogs.com/metaphors/p/7900483.html

16)ionic 连接打电话拨号功能:

  <ion-item class="clue-list">

<span class="clue-titleColor">小贷公司A</span> 

<hr align=center width=100% color=#987cb9 SIZE=1>

<div class="clue-fontColor">

<div class="row">

<div class="col col-20">联系人<br>联系电话</div>

<div class="col col-20">张三<br>010-8888888</div>

<!-- <div class="col col-20 col-offset-40 col-center"><span>></span></div> -->

<a class="clue-right" ion-button clear item-right href="tel:10086"><span>></span></a>

</div>

</div>

</ion-item>

超链接属性hreftel+号码

<a class="clue-right" ion-button clear item-right href="tel:10086"><span>></span></a>

 

config.xml 添加权限语句

<access launch-external="yes" origin="tel:*" />

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值