小编Tys*_*son的帖子

Angular 2:如何通过多个嵌套组件发出事件?

我有一个名为ItemsComponent的 "智能"组件和两个嵌套的"哑"组件,ItemsListComponentItemComponent.

ItemsComponent的html模板包含ItemsListComponent.

// ItemsComponent
<div>
  // ItemsListComponent
  <app-items-list
    [items]="items"
    (doDelete)="deleteItem($event)"
  >
  </app-items-list>
<div>
Run Code Online (Sandbox Code Playgroud)

它有一个名为deleteItem的函数:

deletItem(item) {
  // code to handle item deletion...
}
Run Code Online (Sandbox Code Playgroud)

ItemsListComponent包含ItemComponent:

// ItemsListComponent    
<ul *ngFor="let item of items">
  // ItemComponent
  <app-item
   [item]="item"
   (doDelete)="deleteItem($event)"
  >
  </app-item>
</ul>
Run Code Online (Sandbox Code Playgroud)

所以html结构是这样的:

ItemsComponent (app-items)
    - ItemsListComponent (app-items-list)
        - ItemComponent (app-item)
Run Code Online (Sandbox Code Playgroud)

ItemComponent有一个按钮

<button (click)="deleteItem(item)">
Run Code Online (Sandbox Code Playgroud)

deleteItem的事件发射器:

@Output() doDelete = new EventEmitter();

deleteItem(item) {
  this.doDelete.emit(item);
}
Run Code Online (Sandbox Code Playgroud)

当在ItemComponent中 …

angular

15
推荐指数
2
解决办法
8409
查看次数

标签 统计

angular ×1