美文网首页
ionic3 组件的封装

ionic3 组件的封装

作者: 没有昵_称 | 来源:发表于2017-11-28 18:03 被阅读382次
    • 1.创建组件

    执行 ionic g component loding (组件名),等待创建成功后,目录如下:

    image.png
    • 2.组件之间通过@Input@Output来进行交互的;
      @Input:父组件通过@Input将数据传递给子组件 需要加载Input模块
      @Output:子组件通过@Output将数据传递给父组件,需要加载OutputEventEmitter模块

    loding.html

    
    <div tappable (click)='goDetails(12)'>
      {{values}}
    </div>
    
    

    loding.ts

    import { NavController } from 'ionic-angular';
    import { Component, Input,Output,EventEmitter } from '@angular/core';
    
    @Component({
      selector: 'loding',
      templateUrl: 'loding.html'
    })
    export class LodingComponent {
      @Input()values:any; //获取从父组件传递过来的数据
      @Output() out:EventEmitter<any> = new EventEmitter;
      constructor(public navCtrl:NavController) { 
      }
       goDetails(item) {
          this.out.emit(item) //将数据传递给父组件
      }
    }
    
      1. 组件的引用,比如我在list这个Page中使用在list.module.ts引入组件
        image.png
    • 4.组件的使用

    list.html

    
    <ion-header>
    
      <ion-navbar>
        <ion-title>list</ion-title>
      </ion-navbar>
    
    </ion-header>
    
    
    <ion-content padding >
      <loding [values]='val' (out)='outpust($event)'></loding>
      
          <div class="custom-spinner-container">
            <div class="custom-spinner-box">{{val}}</div>
          </div>
          
    </ion-content>
    

    通过自定义属性([values]='val')把数据传给子组件,父组件通过自定义事件((out)='outpust($event)')获取子组件传过来的值

    list.ts

    import { AppService } from './../../app/app.service';
    import { Component } from '@angular/core';
    import { IonicPage, NavController, NavParams } from 'ionic-angular';
    @IonicPage()
    @Component({
      selector: 'page-list',
      templateUrl: 'list.html',
    })
    export class ListPage {
       val:string='nishuoshenm'
      constructor(public navCtrl: NavController, public navParams: NavParams,public appSer:AppService) {
        
      } 
    
      ionViewDidLoad() {
        console.log('ionViewDidLoad ListPage');
        // this.appSer.loding()
        
      }
      outpust(res){
        console.log(res)
      }
    
    }
    
    
    • 注意:


      image.png

    相关文章

      网友评论

          本文标题:ionic3 组件的封装

          本文链接:https://www.haomeiwen.com/subject/zxpebxtx.html