Angular--组件传值

1 父子传递

1.1 父组件传递给子组件

1) 父组件 的 html 文件 引入子组件 并 传递数值给子组件

<!--父组件调用子组件search 传递给子组件 title 变量-->
<app-search [title]="'我是Home_Header'"></app-search>

2) 子组件search 的 逻辑文件 search.component.ts 文件引入 Input 依赖 接收 父组件传递的参数

import {Input} from '@angular/core';
​
@Input() title: any;

3) 子组件的html 文件 页面 渲染 变量

{{title}}----------

效果:

我是Home_Header----------

//把整个父组件传递给子组件

[title] = "this"

1.2 子组件传递给父组件

方法一: 主动获取

子组件传递给父组件信息 --------------------在父组件中通过获取子组件的dom节点信息 获得子组件的信息 具体参考 Angular--dom操作

方法二: 被动获取

1 子组件 引入Output 依赖 并实例化一个类似于监听器的 new EventEmitter<any>();

信号

@Output() outer = new EventEmitter<any>();

定义方法向父组件的信号检测端 传递数据 也就是 Search_Message 字符

sendMes() {
  this.outer.emit('Search_Message');
}

光定义不够 还得给子组件 定义触发该方法的 事件

比如给button 标签 绑定 click 事件

say() {
  this.sendMes();
}

至此 子组件的所有事项均已准备妥当 万事俱备 只欠东风

那么 父组件的东风又该如何筹借呢

我们需要在 父组件 引用 子组件的 标签中 增加一个 子组件实例化出来的信号检测器

<app-search
  (outer)="getMessage($event)"
  #searchComponent [title]="'我是Character_Header'"
>
</app-search>

当outer 信号检测器 监听到 子组件由于触发了 click 事件而向父组件 传递信号和数据

此刻调用父组件定义的getMessage 方法 并传入 子组件传递的数据 也就是 $event

getMessage(event) {
  console.log(event);
}

逻辑文件 此时 接收 参数 并将它打印出来

 

2: 非父子组件传值

创建组件之间共享的服务共享数据 具体参考 Angular--服务

vb7

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值