Angular:组件之间的通信@Input、@Output和ViewChild
①父组件给子组件传值
1、父组件:
ts:
export class HomeComponent implements OnInit {
public hxTitle = '我是首页的头部'; constructor() { }
ngOnInit(): void {
} run(): void {
alert('我是父组件的方法');
} } html:
<app-header [hxTitle222]="hxTitle" [run]="run" [home]='this'></app-header>
2、子组件:
ts:
import { Component, OnInit, Input } from '@angular/core'; @Component({
selector: 'app-header',
templateUrl: './header.component.html',
styleUrls: ['./header.component.less']
})
export class HeaderComponent implements OnInit { @Input() hxTitle222: any;
@Input() run: any;
@Input() home: any;
constructor() { } ngOnInit(): void {
}
getPRun(): void {
this.run();
this.home.run();
console.log(this.home);
} } html:
<p>{{hxTitle222}}</p>
<button (click)="getPRun()">我要执行父组件的方法</button>
②子组件给父组件传值
1、子组件:
ts:
import { Component, OnInit, Output, EventEmitter } from '@angular/core'; @Component({
selector: 'app-newschild',
templateUrl: './newschild.component.html',
styleUrls: ['./newschild.component.less']
})
export class NewschildComponent implements OnInit {
public hxMsg = '我是新闻孩子的信息';
@Output() hxMsg2 = new EventEmitter();
constructor() { } ngOnInit(): void {
} run(): void {
alert('我是新闻孩子的run方法');
} hxRun(): void {
this.hxMsg2.emit(this.run); //广播方法
}
} html:
<button (click)="hxRun()">我要触发事件,并将值传给父组件</button>
2、父组件:
ts:
import { Component, OnInit} from '@angular/core'; @Component({
selector: 'app-news',
templateUrl: './news.component.html',
styleUrls: ['./news.component.less']
})
export class NewsComponent implements OnInit { constructor() { } ngOnInit(): void {
} getRun2(e): void {
console.log(e);
}
} html:
<app-newschild (hxMsg2)="getRun2($event)"></app-newschild>
③父组件拿到子组件中的属性或方法之@ViewChild
1、子组件:ts中定义一些属性和方法
2、父组件:
ts:
import { Component, OnInit, ViewChild } from '@angular/core'; @Component({
selector: 'app-news',
templateUrl: './news.component.html',
styleUrls: ['./news.component.less']
})
export class NewsComponent implements OnInit {
@ViewChild('newschild') newschild: any; constructor() { } ngOnInit(): void {
} getMsg(): void {
alert(this.newschild.hxMsg); //子组件中定义的属性
} getRun(): void {
this.newschild.run(); //子组件中定义的方法
} } html:
<button (click)="getMsg()">获取子组件的msg</button>
<button (click)="getRun()">获取子组件的run方法</button>
<app-newschild #newschild></app-newschild>
Angular:组件之间的通信@Input、@Output和ViewChild的更多相关文章
- angular组件之间的通信
一.组件创建 直接使用 ng g component 的命令创建组件,会自动生成组件所需的文件,方便快捷. // 父组件 ng g component parent // 子组件 ng g compo ...
- Angular组件之间通讯
组件之间会有下列3种关系: 1. 父子关系 2. 兄弟关系 3. 没有直接关系 通常采用下列方式处理(某些方式是框架特有)组件间的通讯,如下: 1父子组件之间的交互(@Input/@Output/模板 ...
- ionic2+Angular 依赖注入之Subject ——使用Subject来实现组件之间的通信
在Angular+ionic2 开发过程中,我们不难发现,页面之间跳转之后返回时是不会刷新数据的. 场景一:当前页面需要登录之后才能获取数据--去登录,登录成功之后返回--页面需要手动刷新才能获取到数 ...
- angular组件间的通信(父子、不同组件的数据、方法的传递和调用)
angular组件间的通信(父子.不同组件的数据.方法的传递和调用) 一.不同组件的传值(使用服务解决) 1.创建服务组件 不同组件相互传递,使用服务组件,比较方便,简单,容易.先将公共组件写在服务的 ...
- react8 组件之间的通信
<body><!-- React 真实 DOM 将会插入到这里 --><div id="example"></div> <!- ...
- vue 基础-->进阶 教程(3):组件嵌套、组件之间的通信、路由机制
前面的nodejs教程并没有停止更新,因为node项目需要用vue来实现界面部分,所以先插入一个vue教程,以免不会的同学不能很好的完成项目. 本教程,将从零开始,教给大家vue的基础.高级操作.组件 ...
- vue工程利用pubsub-js实现兄弟组件之间的通信
前言 项目是基于vue-cli创建的,不会搭建vue开发环境的同学可以百度,这里不再赘述. 步骤流程 vue项目搭建完成之后的文件图如下: 我的上一篇博客已经详细叙述vue工程中各个文件的作用,不清楚 ...
- React 学习(六) ---- 父子组件之间的通信
当有多个组件需要共享状态的时候,这就需要把状态放到这些组件共有的父组件中,相应地,这些组件就变成了子组件,从而涉及到父子组件之间的通信.父组件通过props 给子组件传递数据,子组件则是通过调用父组件 ...
- vuex-- Vue.的中心化状态管理方案(vue 组件之间的通信简化机制)
vuex-- Vue.的中心化状态管理方案(vue 组件之间的通信简化机制) 如果你在使用 vue.js , 那么我想你可能会对 vue 组件之间的通信感到崩溃 .vuex就是为了解决组件通信问题的. ...
随机推荐
- 编译一个Centos6.4下可用的内核rpm升级包-3.8.13内核rpm包
在Centos6.4下进行内核升级,采用内核源码的升级方式比较简单,但是需要升级的机器多的情况下进行内核升级就比较麻烦,并且编译内核的速度依赖于机器的性能,一般需要20分钟,而通过rpm内核包的方式进 ...
- SpringSecurity之认证
SpringSecurity之认证 目录 SpringSecurity之认证 1. 盐值加密 1. 原理概述 2. 使用说明 1. 加密 2. 认证 1. 页面成功跳转的坑 2. 使用验证码校验的坑 ...
- 金九银十已到!Cookie 和 Session的这些知识你必须知道,面试必问!
前言 会话:一次会话中包含多次请求和响应 注:一次会话表示浏览器第一次给服务器发送请求,会话建立,直到有一方断开为止 功能:在一次会话的多次请求间共享数据 方式: (1) 客户端会话技术:Cookie ...
- Guitar Pro 7教程之打开播放文件的操作技巧
前面的章节我们讲过了很多关于Guitar Pro的相关教程,由于最近{cms_selflink page='index' text='Guitar Pro'} 7中文版刚上新没多久,很多玩吉他的小伙伴 ...
- 思维导图iMindMap可以在哪些领域应用
生活工作中你常常会遇到许多力所不能及的事情,感到无奈.茫然,这时候你急需一个帮手来帮你打破困境,思维导图就是这样的救世主,至于它有哪些力所能及的事情就是下面小编要跟你讲的. 你是否经常遇到过这样的情况 ...
- MindManager主题标记功能怎么使用
我们在使用MindManager制作思维导图的过程中,经常需要对主题的类别,优先程度等进行整理,毫无疑问,这是一项繁琐却又不得不做的工作.今天小编为大家带来了MindManager主题整理的一些小技巧 ...
- 打开WPS时出现MathType错误弹窗怎么办
MathType是一款特别优秀的公式编辑器,特别是在文档中出现大量的复杂数学公式需要编辑时.不过MathType与Office的兼容性还算好,与WPS的兼容性要略逊一筹,有时候会出现如下的报错弹窗.提 ...
- 基于Koa2+mongoDB的后端博客框架
主要框架:koa2全家桶+mongoose+pm2. 在阅读前建议将项目克隆到本地配合食用,否则将看得云里雾里. 项目地址:https://github.com/YogurtQ/koa-server. ...
- MySQL制作具有千万条测试数据的测试库
有时候需要制造一些测试的数据,以mysql官方给的测试库为基础,插入十万,百万或者千万条数据.利用一些函数和存储过程来完成. 官方给的测试库地址:https://github.com/datachar ...
- How tomcat works(深入剖析tomcat)(7) Logger
How tomcat works (7)日志记录器 总体概述 顾名思义,这一章将的是tomcat的日志记录器组件,比较简单,tomcat提供了几种类型不同的日志记录器,但是所有的日志记录器都需要实现L ...