首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角2-分量通信

角2-分量通信
EN

Stack Overflow用户
提问于 2017-06-26 01:51:23
回答 1查看 359关注 0票数 1

我是Angular2的新手,我正试着把我的注意力集中在@Input@Output类型的东西上。

举个例子,我有两个组件。我希望组件1中有一个按钮来切换组件2的可见性。

代码语言:javascript
复制
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
  }

}
代码语言:javascript
复制
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变量来显示或隐藏它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-26 02:26:13

如果两个组件都有一个公共父组件,则第一个组件应该发出一个事件,该事件将在父组件中设置一个布尔变量,以切换第二个组件的可见性。在父变量的模板中,使用绑定到此布尔变量的*ngIf指令来显示/隐藏组件2。我录制了一个简短的视频,展示了如何使用父组件作为中介实现组件间通信:https://www.youtube.com/watch?v=tSXx4NoKEYY&t=3s

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44752198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档