【发布时间】:2017-11-28 20:23:38
【问题描述】:
我是 Angular2 的新手,我正在努力理解 @Input 和 @Output 类型的东西。
例如,我有两个组件。我想要组件一中的一个按钮来切换组件二的可见性。
import { Component, Input, Output, EventEmitter} from '@angular/core';
@Component({
selector: 'widget-one',
template:'<div class="widget-one" (click)="sendToWidgetTwo()"><button>Send to widget two</button></div>'})
export class WidgetOne {
constructor(){
console.log('Hello Widget One');
}
sendToWidgetTwo(){
console.log("button clicked");
// communicate with widget two
}
}
import { Component, Input, Output, EventEmitter} from '@angular/core';
@Component({
selector: 'widget-two',
template:'<div *ngIf="showing" class="widget-two">{{msg}}</div>'
})
export class WidgetTwo {
msg = "hello widget two";
showing = true;
constructor(){
console.log('Hello Widget Two');
}
}
我希望 WidgetOne 的按钮切换 WidgetTwo 的 showing 变量以显示或隐藏它。
【问题讨论】:
-
如果这两个组件不是父子关系,那么一种方法是使用它们可以通过它们进行通信的服务。总的来说,我建议您阅读描述不同选项的这部分文档:angular.io/guide/component-interaction
标签: angular input output components communication