Angular2 之父子组件交互方式
父子组件交互方式,这里介绍主要的三种方式
1.事件传值
下面以列表页和分页组件举例。
list.component.html
<pagination *ngIf="pageParams?.total>0" [pageParams]="pageParams" (changePageData)="changePageData($event)"></pagination>
2 /* 这里的ngIf是为了控制total,当total从接口获取到了返回值以后再显示分页组件 */
list.component.ts
@Component({
templateUrl: './list.component.html'
})
export class ListComponent {
changePageData(event) {
this.pageParams = event;
this.getPageData() // 从分页组件获取page参数后重新获取list数据
}
}
pagination.component.html
import { Component, OnInit, OnChanges, Input, Output, EventEmitter } from '@angular/core';
@Component({
template: `<button (click)="nextPage()">点我下一页<`
})
export class PaginationComponent {
@Input() pageParams: any;
// EventEmitter是一个帮你实现观察者模式的对象,用于管理一系列订阅者并向其发布事件的对象
@Output() changePageData: EventEmitter<any> = new EventEmitter;
nextPage() {
this.pageParams.pageNo += 1;
this.changePageData.emit(this.pageParams) // 广播事件给父组件,触发父组件事件,可以emit参数过去
}
}
2.局部变量
下面使用简单的例子来说明模板局部变量的使用。
2.1.子组件childComponent
child.component.ts
import { Component } from '@angular/core';
@Component({
template: ``
})
export class ChildComponent {
show1(event) {
alert('从父组件传来的值是:'+event);
}
}
2.2.父组件parentComponent
parent.component.ts
import { Component } from '@angular/core';
@Component({
template: `
<button (click)="child.show1(str)">点我调用子组件事件</button>
<child-selector #child></child-selector>
`
})
export class ParentComponent {
str: string = '子组件你好!'
}
3.@ViewChild
Angular2 之父子组件交互方式的更多相关文章
- 三大前端框架(react、vue、angular2+)父子组件通信总结
公司业务需要,react.vue.angular都有接触[\无奈脸].虽然说可以拓展知识广度,但是在深度上很让人头疼.最近没事的时候回忆各框架父子组件通信,发现很模糊,于是乎稍微做了一下功课,记录于此 ...
- angular2 里父子组件传值的坑
1.如果传的是基本类型的值,子组件里改变该值,父组件无变化 2.如果传的是对象,子组件里改变对象里的变量,父组件会变化 3.如果传的是函数,this不会继续指向父组件对象了,如果需要this指向父组件 ...
- Angular2 父子组件通信方式
https://www.jb51.net/article/133868.htm 这次给大家带来Angular2 父子组件通信方式,使用Angular2 父子组件通信方式的注意事项有哪些,下面就是实战案 ...
- Angular06 组件、模块、父子组件之间的数据传递
1 创建组件 进入到angular项目的根目录,执行如下命令 ng g component test-component 注意:执行完上述命令后在angular项目的src/app文件夹下就会多出一个 ...
- 关于React的父子组件通信等等
//==================================================此处为父子组件通信 1.子组件调用父组件: 父组件将子组件需要调用方法存入props属性内,子组 ...
- 第四节:Vue表单标签和组件的基本用法,父子组件间的通信
vue表单标签和组件的基本用法,父子组件间的通信,直接看例子吧. <!DOCTYPE html> <html> <head> <meta charset=&q ...
- Vue2.x中的父子组件相互通信
业务场景:(这里指的是直接父子级关系的通信) 美女(子组件)将消息发送给大群(父组件) 大群(父组件)收到美女发送的消息后再回个信息给美女(子组件) 父组件 template <template ...
- React学习(一)父子组件通讯
React父子组件之间通讯,利用props和state完成,首先React是单向数据流,父组件可以向子组件传递props: 实现父子组件双向数据流整体的思路是: 1,父组件可以向子组件传递props, ...
- Vue 非父子组件通信
组件是Vue核心的一块内容,组件之间的通信也是很基本的开发需求.组件通信又包括父组件向子组件传数据,子组件向父组件传数据,非父子组件间的通信.前两种通信Vue的文档都说的很清楚,但是第三种文档上确只有 ...
随机推荐
- tensorflow的简单操作
import tensorflow as tf c1 = tf.constant([[3,3]]) c2 = tf.constant([[3],[2]]) product = tf.matmul(c1 ...
- Java延时器
package listener; import java.util.Timer; import java.util.TimerTask; public class Timeer { /** * sc ...
- Weekly Contest 119
第一题: 973. K Closest Points to Origin We have a list of points on the plane. Find the K closest poi ...
- composer安装doctrine/dbal
composer安装doctrine/dbal composer安装doctrine/dbal,安装不成功,使用的安装命令为官方提供命令“composer require doctrine/dbal” ...
- VMware centos7 如何配置静态ip并且可上网
注:此贴使用NAT方式配置上网模式. 1.设置虚拟机的网络适配器为NAT模式: 2.修改VMware的“虚拟网络编辑器”: 打开后选择NAT模式,勾选,然后点击NAT设置: NAT默认设置了188网段 ...
- [Python数据挖掘]第7章、航空公司客户价值分析
一.背景和挖掘目标 二.分析方法与过程 客户价值识别最常用的是RFM模型(最近消费时间间隔Recency,消费频率Frequency,消费金额Monetary) 1.EDA(探索性数据分析) #对数据 ...
- 我应该如何在Pycharm中去运行别人的Django项目
django数据库迁移,本地运行 前言: 从网络上下载好django项目后,在本地用pycharm导入后,并不能运行.此时我们需要添加库和创建数据库. 零:这里是一个基于django写的小项目,可以作 ...
- 利用 Charles Proxy 下载旧版本 iOS App
一.软件准备 1.旧版本 iTunes1.IPSW Downloads:https://ipsw.me/2.百度网盘链接: https://pan.baidu.com/s/1PO9Z12o-rqZ_J ...
- navicat premium 破解版
下载链接:https://pan.baidu.com/s/1oNwtr2hdUN9F452xkji0aQ
- time series 时间序列 | fractional factorial design 部分要因试验设计
作业: 1) A plot of data from a time series, which shows a cyclical pattern – please show a time series ...