美文网首页
ionic 不同page的不同子组件之间的数据交互

ionic 不同page的不同子组件之间的数据交互

作者: 候鸟_ywh | 来源:发表于2018-04-28 09:33 被阅读0次

目的:我想实现在 不同page 之间 的不同子组件 之间的数据交互 但是数据不需要经过父组件
框架:ionic3
准备:
1、新建两个page (page1,page2)
2、新建两个components(c1,c2)

c1组件:显示数据
c1.html

<p>当前值: {{ counter }}</p>

c1.ts

import { Events } from 'ionic-angular';
import { Component, OnChanges, ChangeDetectionStrategy, ChangeDetectorRef, OnInit } from '@angular/core';


@Component({
  selector: 'c1',
  templateUrl: 'c1 .html',
  changeDetection: ChangeDetectionStrategy.OnPush    //这里是重点
})
export class C1 {

 text:number=0;

  constructor(
        private cdRef:ChangeDetectorRef    // 这个要注意
    ) {
 this.events.subscribe('all', (e) => {    // 订阅all对象
      console.log(e);
      this.text = e.text
      this.cdRef.markForCheck();   // 这个要注意
    })  
  }
}

c2:修改数据

c2.html

<button (click)="add()">加1</button>

c2.ts

import { Events } from 'ionic-angular';
import { Component } from '@angular/core';

@Component({
  selector: 'c2',
  templateUrl: 'c2.html'
})
export class C2 {

  text: number;

  constructor(public events:Events) {
    console.log('Hello TochangeComponent Component');
    this.text = 1;
  }

  add(){
    this.text += 1
    console.log(this.text);
    
    this.events.publish("all", { text: this.text })  //发布订阅
  }

}

page1:用来存放c1,和跳转到page2

page1.html

    <c1></c1>
    <br>
    <button (click)="p()">页面跳转</button>

page1.ts

  p(){
    this.navCtrl.push('AaPage')
  }

page2:用来存c2

page2.html

<c2></c2>
image.png
image.png
image.png

总结:其实方法有好多种:input和output经过父组件流过去,本地储存,session... 我这里用的是rxjs,选自己喜欢的吧 W

相关文章

  • ionic 不同page的不同子组件之间的数据交互

    目的:我想实现在 不同page 之间 的不同子组件 之间的数据交互 但是数据不需要经过父组件框架:ion...

  • VUE的props理解

    vue的组件之间是独立的,为了在组件之间传递数据,我们需要用到不同的手段。父组件->子组件:props子组件->父...

  • 父子组件通信

    组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用。 父组件向子组件传递数据 子组件使用 pr...

  • Android知识总结(ContentProvider)

    Android四大组件之一,为不同应用之间数据交互提供统一的接口。对于ContentProvider而言,无论数据...

  • Angular事件-不同组件间传递数据

    利用Angular Event在不同组件之间传递数据 为了实现在Angular不同Component之间相互传递数...

  • VUEX

    VUEX就是解决组件之间同一状态的共享问题,就是解决不同组件不同页面之间的数据共享,这两个组件或者页面是完全没有关...

  • unity游戏对象,组件,Prefabs

    创建游戏对象和组件 任何游戏对象都是由组件组成,不同的组件有不同的功能,不同组件之间的互相组合以及组件属性之间的差...

  • Android四大组件——ContentProvider(基础篇

    概述 ContentProvider是Android中提供的专门用于不同应用间数据交互和共享的组件。Content...

  • 启动活动的最佳写法

    Intent是android程序中各组件之间交互的一种重要方式,不仅可以指明当前组件想执行的动作,还可以不同组件间...

  • 作用域插槽

    就是让插槽渲染出不同的东西(简单来说就是把父级的数据传到子组件,再从子组件传回父组件,让插槽内容有点不同)

网友评论

      本文标题:ionic 不同page的不同子组件之间的数据交互

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