有角度的:告诉子组件做某事

时间:2019-01-21 15:38:57

标签: angular

我想不使用<script> var acc = document.getElementsByClassName(".faq h3"); var panel = document.getElementsByClassName(".faq p"); for (var i = 0; i < acc.length; i++) { acc[i].onclick = function() { var setClasses = !this.classList.contains('active'); setClass(acc, 'active', 'remove'); setClass(panel, 'show', 'remove'); if (setClasses) { this.classList.toggle("active"); this.nextElementSibling.classList.toggle("show"); } } } function setClass(els, className, fnName) { for (var i = 0; i < els.length; i++) { els[i].classList[fnName](className); } } </script> 来访问子组件方法

例如:我有一个子组件,并且想告诉其父组件@ViewChild由事件发射器来完成

buyFood()

父组件

child component

 export class SearchComponent implements OnInit {
  constructor() { }

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

  askParentToByFood() {
   this.foodEvent.emit();
  }

  eatFood() {...}
 } 

假设我们在父级中有一个 <child-component (foodEvent)="buyFood()"></child-component> 函数

现在我的问题是如何在不使用@ViewChild的情况下告诉子组件其父对象的eatFood。

1 个答案:

答案 0 :(得分:0)

要将值发送到子组件,请使用@Input()

<child-component isReady="true"></child-component>

<child-component [isReady]="isReady"></child-component>

在其中isReady是要使用的父项中的变量和子项中的输入。