angular-组件传值

子组件获取父组件数据和方法

<!-- 子组件 form -->
<app-form [shows]="shows" [run]="run" [news]="this">form 组件</app-form>
<!-- 父组件中定义 run 方法 -->
run(){
    alert('父组件方法')
 }

在父组件中挂载子组件,通过绑定属性的方法绑定传递给子组件的数据(属性,方法,包括父组件本身)
run是传递给子组件的方法,注意不要加()

import { Component, OnInit,Input } from '@angular/core';

在子组件中引入 Input 模块

export class FormComponent implements OnInit {

  @Input() shows:boolean
  @Input() run:any
  @Input() news:this

  constructor() { }
  ngOnInit(): void {
  }

  getrun(){
    this.run()
    alert(this.news.title)
  }
}

在子组件类中通过 @Input 装饰器接收父组件传递过来的数据(属性,方法,包括父组件本身)

<button (click)="getrun()">执行父组件方法</button>

子组件中定义方法执行父组件传递过来的方法

父组件获取子组件数据和方法

<app-form #formId>form 组件</app-form>
public msg = '子组件的一个msg'

在子组件挂载处定义个名称或者id,且定义一个获取数据和执行方法的事件

@ViewChild('formId') form: any

通过@ViewChild接受子组件传递过来的数据和方法

父组件中定义个方法
<button (click)="getchildMsg()">获取form子组件的msg</button>
<button (click)="getchildRun()">执行form子组件的方法</button>
 getchildMsg() {
    alert(this.form.msg)
  }
 getchildRun(){
    this.form.formrun()
  }

执行父组件中的事件就可以获得子组件的数据和方法

通过Output和EventEmitter

import { Component, OnInit, Output, EventEmitter } from '@angular/core';

子组件中引入Output和EventEmitter

<button (click)="setrun()">通过@Output执行父组件数据</button>

@Output() private out = new EventEmitter()

setrun(){
    alert(this.out.emit('子组件的数据'))
}

子组件中定义方法,通过@Output()声明一个变量
子组件中实例化 EventEmitter
子组件中setrun是要执行的方法

<app-form (out)="run($event)">form 组件</app-form>
run(e) {
  console.log(e)
  alert('父组件方法')
}

父组件中定义一个方法接收,父组件中的run方法接收的就是子组件的方法执行时传递给父组件的数据

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 组件间交互简单来说就是让两个或多个组件之间共享信息。接下来我们就对Angular2组件间的交互做一个简单的解...
    tuacy阅读 4,944评论 0 2
  • Angular介绍 Angular安装、创建项目、目录结构、组件、服务 创建组件、绑定数据、绑定属性、数据循环、条...
    地瓜粉丝阅读 3,555评论 0 2
  • 为了让大家学习起来轻松、易懂,小编尽量做到篇幅短,语言通俗易懂,知识点分段来讲,以免太长了看起来很累,也很容易失去...
    小处成就大事阅读 4,544评论 0 0
  • 一、安装最新版本的 nodejs 注意:请先在终端/控制台窗口中运行命令 node -v 和 npm -v, 来验...
    liuguangsen阅读 6,476评论 0 1
  • Angular2官方文档对组件交互这块有详细的介绍-->文档--组件之间的交互。按文档介绍,组件间交互的方式一共有...
    Husbin阅读 9,503评论 0 3