从一个组件到另一个组件的(角度)事件

时间:2018-11-27 19:11:19

标签: angular

我有一个嵌套在另一个组件中的组件,我想在父组件中创建一个事件,以调用子组件上的方法,我知道它可以通过输入和输出进行操作,但是我找不到那里的教程是事件。 这是我在父亲模板上的代码行,但是方法“ getSemana()”在子组件上

<li><a [routerLink]="['/menu/graficas']" (click)="getSemana()"><i class="fa fa-circle-o"></i>Ultima Semana</a></li>

1 个答案:

答案 0 :(得分:0)

通常,您需要相反的方法。子组件触发父组件上的功能。如果您想以其他方式执行此操作,则可以在父级中创建一个getSemanaFlag,并将其传递给子级,子级在ngOnChanges中侦听它,然后可以触发逻辑。看起来像这样。您的代码非常少,因此我将给您一个非常小的描述。您可能不想要setTimeout,但这是我目前所能想到的最好的内容。

parent.component.html

<li><a [routerLink]="['/menu/graficas']" (click)="setSemanaFlag()"><i class="fa fa-circle-o"></i>Ultima Semana</a></li>
...
<child-component [semanaFlag]="semanaFlag"></child-component>

parent.component.ts

setSemanaFlag() {
   this.semanaFlag = true;
   setTimeout(() => this.semanaFlag = false, 100);
}

child.component.ts

@Input() semanaFlag

ngOnChanges(changes: SimpleChanges) {
  if (changes.semanaFlag && changes.semanaFlag.currentValue === true) {
    this.getSemana();
  }
}