【发布时间】:2018-05-04 13:55:02
【问题描述】:
我的 Angular 应用程序中有两个组件(Component1 和 Component2)。我在我的应用程序组件中渲染了这两个组件。 现在我想将一个值从 Component1 发送到 Component2。如何发送。有什么最佳做法吗??
在 Component1 我有这样的代码。 组件1.html
<button (click)="passData()">Click Me</button>
Component1.ts
import { Component, OnInit , Output , EventEmitter } from '@angular/core';
@Component({
selector: 'app-component1',
templateUrl: './component1.component.html',
styleUrls: ['./component1.component.css']
})
export class Component1Component implements OnInit {
Component1Variable:string="Component1VariableSent";
constructor() { }
ngOnInit() {
}
@Output()
SendValue=new EventEmitter<string>();
passData()
{
this.SendValue.emit(this.Component1Variable);
}
}
在 Component2.html 我有
<app-component1 (SendValue)="ValueFromComp1($event)"> </app-component1>
{{ValueFromComponent1}}
在 Component2.ts 我有
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-component2',
templateUrl: './component2.component.html',
styleUrls: ['./component2.component.css']
})
export class Component2Component implements OnInit {
ValueFromComponent1:any;
constructor() { }
ngOnInit() {
}
ValueFromComp1(var1:any)
{
this.ValueFromComponent1=var1;
}
}
在 appcomponent.html 我有这样的代码。
<app-component1></app-component1>
<app-component2></app-component2>
现在我要将值从组件 1 发送到组件 2。但是输出中有两次点击按钮。
另一个问题是我想将数据从一个组件传输到另一个组件,该组件位于组件树的同一层次结构中。 通过上述方式,我不会在组件树的同一层次结构中获得组件。
【问题讨论】:
-
请添加演示您尝试完成的代码。
-
你在谷歌上搜索过吗?
-
是的,我进行了搜索。
-
@roopteja 你正在使用事件发射器,看看它,它会很好去