前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Angular 4 组件通信

Angular 4 组件通信

原创
作者头像
半指温柔乐
修改于 2020-06-11 02:12:31
修改于 2020-06-11 02:12:31
95600
代码可运行
举报
文章被收录于专栏:前端知识分享前端知识分享
运行总次数:0
代码可运行

组件通讯,意在不同的指令和组件之间共享信息。如何在两个多个组件之间共享信息呢。

最近在项目上,组件跟组件之间可能是父子关系,兄弟关系,爷孙关系都有。。。。。我也找找了很多关于组件之间通讯的方法,不同的方法应用在不同的场景,根据功能需求选择组件之间最适合的通讯方式。下面我就总结一下关于组件通讯的N多种方法。

1.父→子 input

parent.ts

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { Component } from '@angular/core';

@Component({
  selector: 'page-parent',
  templateUrl: 'parent.html',
})
export class ParentPage {
  i: number = 0;
  constructor() {
    setInterval(() => {
      this.i++;
    }, 1000)
  }
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
parent.html<ion-header>
  <ion-navbar>
    <ion-title>Parent</ion-title>
  </ion-navbar>
</ion-header>

<ion-content padding>
  <h2>Parent</h2>
  <page-child [content]="i"></page-child>
</ion-content>

child.ts

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { Component,Input } from '@angular/core';

@Component({
  selector: 'page-child',
  templateUrl: 'child.html',
})
export class ChildPage {
@Input() content:string;
  constructor() {
  }
}

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
child.html

<ion-content padding>
child:{{content}}
</ion-content>

结果:

2.子→父 output

parent.ts

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { Component } from '@angular/core';

@Component({
  selector: 'page-parent',
  templateUrl: 'parent.html',
})
export class ParentPage {
  i: number = 0;
  numberIChange(i:number){
      this.i = i;
  }
}

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
parent.html
<ion-header>
  <ion-navbar>
    <ion-title>Parent</ion-title>
  </ion-navbar>
</ion-header>

<ion-content padding>
  <h2>Parent:{{i}}</h2>
  <page-child (changeNumber)="numberIChange($event)"></page-child>
</ion-content>

child.ts

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { Component, EventEmitter, Output } from '@angular/core';

@Component({
  selector: 'page-child',
  templateUrl: 'child.html',
})
export class ChildPage {
  @Output() changeNumber: EventEmitter<number> = new EventEmitter();
  Number: number = 0;
  constructor() {
    setInterval(() => {
      this.changeNumber.emit(++this.Number);
    }, 1000)
  }
}

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
child.html

<ion-content padding>
     child
</ion-content>

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
ionic-navigation 原
(adsbygoogle = window.adsbygoogle || []).push({});
tianyawhl
2019/04/04
6870
Ionic 2 添加页面创建页面创建附加页面
现在我们已经基本知道了Ionic2 app的布局,接下来我们来走一遍在我们的app里创建和导航页面的过程。 先看看src/app/app.html, 接近底部的地方有如下内容: <ion-nav id="nav" [root]="rootPage" #content swipeBackEnabled="false"></ion-nav> 注意[root]属性绑定。设置了ion-nav组件的根页面或是第一个基本页面。当加载ion-nav是,rootPage变量引用的就是根页面。 在 src/app/app.c
孙亖
2018/06/06
2.6K0
Ionic3学习笔记(十一)实现省市区三级联动
省市区json文件下载地址: https://raw.githubusercontent.com/raychenfj/ion-multi-picker/master/example/src/assets/chinese-cities.json
Theo Tsao
2018/09/07
1.9K0
ionic4初级教程-含登录、访问权限验证功能
如果第一次安装的时候失败,没关系 删掉已经生成的ioinc4Learn文件包,重新运行命令
lilugirl
2019/05/28
2.5K0
ionic4初级教程-含登录、访问权限验证功能
Ionic3学习笔记(十)实现夜间模式功能
在 ./src/theme 文件夹下创建 theme.light.scss、theme.dark.scss 2个文件,分别用于日间模式、夜间模式的设置。
Theo Tsao
2018/09/07
8340
使用Ionic2开发Todo应用0 开始之前1 创建新的Ionic 2工程2. 设置主页(Home page)3 持久化数据保存4 总结
本文使用Ionic2从头建立一个简单的Todo应用,让用户可以做以下事情: 查看todo列表 添加新的todo项 查看todo详情 保存 todo到持久化存储 0 开始之前 本教程需要你了解基本的Ionic 2概念。已经在电脑上安装了Ionic 2。如果没有,先去安装和学习吧。 1 创建新的Ionic 2工程 我们将通过生成一个基于“空白”模板的新项目开始。这是一个空的项目框架,但有一些示例代码供我们使用。 运行以下命令创建新项目 ionic start ionic-todo blank --v2 一
孙亖
2018/06/06
6.3K0
【组件篇】ionic3图像手指缩放滑动预览
我在一篇文章【组件篇】ionic3开源组件提到过图像预览组件,可以看里面的源码,也可以看下面内容。
IT晴天
2018/08/20
1.5K0
Ionic2 Rest 认证1、创建Ionic 2 APP2、创建服务3、创建登陆和注册页面4、登出和token检查
今天,我们使用REST API实现用户名密码认证,服务端端点如下: Endpoint 请求 响应 /login { username: '',password: '' } auth_token /logout add a token to headers /register { username: '', password: '' } 1、创建Ionic 2 APP 反复练习,应该是很熟悉了: ionic start Ionic2RestAuth --v2 我习惯上会先启动看看,确保项目创建成功: c
孙亖
2018/06/07
3.8K0
Ionic3学习笔记(十三)HttpClient 实现 HTTP 请求以及踩过的一些坑
当然是基于这篇古老的文章啦 ==> http://www.jianshu.com/p/9855610eb1d4 因为是2015年的文章,已经时隔2年多,很难确保API仍可使用,所以我亲自进行了抓包,发现没毛病还能用,并且还多发现了2个接口,现整理如下:
Theo Tsao
2018/09/07
3K0
Ionic3学习笔记(十二)拍照上传图片以及从相册选择图片上传
Ionic Native - Camera GitHub - cordova-plugin-camera Ionic Native - Image Picker GitHub - ImagePicker
Theo Tsao
2018/09/07
1.4K0
构建具有用户身份认证的 Ionic 应用
序言:本文主要介绍了使用 Ionic 和 Cordova 开发混合应用时如何添加用户身份认证。教程简易,对于 Ionic 入门学习有一定帮助。因为文章是去年发表,所以教程内关于 Okta 的一些使用步骤不太准确,但是通过 Okta 的官网也可以找到对应的内容。另外,使用 npm 安装 Ionic starter 模板可能会有安装失败的情况,建议不要在这方面浪费太多时间,可以直接在 Ionic 的 GitHub 仓库 中下载 starter 模板。 原文:How to Sprinkle ReactJS i
叙帝利
2018/05/28
23.7K0
Ionic3 拍照上传
本文主要介绍使用cordova实现拍照上传,走通 “拍照 》预览 》上传 》 下载 ”这个流程。为了方便查看测试结果,需要了解Ionic应用调试的基本方法,有关于Ionic项目Android 调试的详细教程,请参考以下文章:Ionic3 Android调试
spilledyear
2018/08/21
1.1K0
Ionic3 拍照上传
ionic2实现扫描二维码功能
注意使用该插件不能使用 1. 安装插件 // 安装平台插件 ionic cordova plugin add cordova-plugin-qrscanner // 安装ionic2插件 npm install --save @ionic-native/qr-scanner ---- 2.使用插件 1.创建扫描二维码的页面 ionic generate page qrdcan 2.页面跳转到扫码页面 跳转方法 // 跳转扫码页面 goQrdcan(){ this.navCtrl.p
用户1437675
2018/08/20
1.4K0
【Appetite】ionic3实录(七)次页实现及分析解决问题【上】
在src/app/assets/data目录创建dessert-slides.json文件并添加如下内容作为轮播图的数据源:
IT晴天
2018/08/20
7000
Ionic 2 :如何实现列表滑动删除按钮1.创建Ionic2应用2.准备列表数据3.修改主页(HOME)的模版4.创建方法删除数据5.添加一个编辑按钮总结
使用Ionic这种框架伟大的地方在于用户界面元素默认准备好了,意味着你可以设计更好的app而不需要很强的用户体检设计背景,而且让你可以更容易实现这些模式。 这篇教程将展示如何使用Ionic2添加一个简
孙亖
2018/06/07
4K0
Angular 组件通信
上一篇,我们讲了 Angular 结合 NG-ZORRO 快速开发。前端开发,很大程度上是组件化开发,永远离不开组件之间的通信。那么,在 Angular 开发中,其组件之间的通信是怎么样的呢?
Jimmy_is_jimmy
2022/04/15
2.1K0
Ionic3 导航分析
路由是前端构建单页面应用(SPA)必不可少的一部分,AngularJS1.x中有两种路由实现,一个是内置的ngRouter,还有一个是基于 ngRoute 开发的第三方路由模块uiRouter。这里为什么要提uiRouter?因为就自我感觉而言uiRouter 和 ionic导航在使用方式上有点像,特别是从它们提供的指令这一层来考虑。如果你没有了解过Angular4中的路由,其实也可以简单看看uiRouter的使用,不需要了解的多详细,仅仅理解它的那个指令的使用方式就可以了。
spilledyear
2018/08/21
2.1K0
Ionic3 导航分析
【技巧】ionic3中content的resize知多少
resize这个方法官方文档有写,所以我以为没什么特别,直至有几人问我,才发现不少人是不知道这个东西的,所以还是写一下。resize官网说明如下:
IT晴天
2018/08/20
5530
Ionic 2 应用剖析0 开始之前1 创建一个新的Ionic 2 应用2 目录结构3. Class 定义Root Components 模版App Module总结
0 开始之前 通过本教程之前,您应该至少了解一些基本的Ionic 2概念。您还必须已经安装了Ionic 2 在您的机器上。 1 创建一个新的Ionic 2 应用 我们将使用有Ionic团队创建的tutorial模板,可见于官方教程,来创建我们的应用程序。要做到这一点,您需要运行以下命令: ionic start ionic2-tutorial tutorial --v2 现在您的应用程序将自己开始建立。为运行后续的命令,你应当将项目目录作为当前工作目录: cd ionic2-tutorial 简单瞟一眼应用
孙亖
2018/06/06
4.6K0
Ionic 2 项目结构./src/index.html./src/./src/app/app.html
解剖Ionic 2 app。进入项目创建的文件夹,这里有一个典型的Cordova项目结构,我们可以安装原生插件,创建平台定义工程文件。 ./src/index.html src/index.html是app的主入口, 设置脚本和CSS,引导、启动我们的应用。对于app的应用,Ionic在HTML中寻找<ion-app>标签。 <ion-app></ion-app> 下面的代码接近底部: <script src="cordova.js"></script> <script src="build/main.js
孙亖
2018/06/06
2.9K0
推荐阅读
相关推荐
ionic-navigation 原
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档