Angular 6通信子级 - 具有ng内容的父级

时间:2018-06-04 09:35:32

标签: angular angular6

我在使用ng-content从父级传递参数时遇到了一些问题。

我有一个模态组件

@Component({
  selector: 'app-modal',
  templateUrl: './modal.component.html',
})
export class ModalComponent {
  @ViewChild('childModal') public childModal: ModalDirective;

  constructor() {}

  show() { 
    this.childModal.show();
  }

  hide() {
    this.childModal.hide();
  }
}


// html
<div bsModal #childModal="bs-modal" class="modal fade" tabindex="-1" role="dialog">
  <div class="modal-dialog modal-info">
    <div class="modal-content">
      <div class="modal-header">
        <h4 class="modal-title pull-left">Modal</h4>
        <button type="button" class="close pull-right" aria-label="Close" (click)="hide()">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
       <ng-content select=".modal-body"> </ng-content>
      </div>

      <div class="modal-footer">
        <div class="pull-left">
          <button class="btn btn-default" (click)="hide()"> Cancel </button>
        </div>
      </div>
    </div>
  </div>
</div>

在html的主要组件中:

<div *ngFor="let item of items">
  //some data
  <button (click)="myModal.show();">Show Modal</button>
</div>

<app-modal #myModal>
  <div class="modal-body"></div>
</app-modal>

它工作正常。当我需要模态数据时,我只需将其传递给show method:

<button (click)="myModal.show(item);">Show Modal</button>

但我需要在我的模态中包含另一个组件:

<app-modal #myModal>
  <div class="modal-body"><another-app-component></another-app-component></div>
</app-modal>

我不知道如何通过&#39; item&#39;数据到另一个应用程序组件

例如ngFor生成5个项目,每个项目都有自己的数据。当我点击第一个&#39; Show Modal&#39;我需要将第一个项目的数据发送到另一个应用程序组件

0 个答案:

没有答案