小编Mar*_* N.的帖子

Angular 通过 @Output() 将参数传递给父组件

我有两个组件,我们称它们为 contianer 和 itemList。itemList 有可点击的项目,我需要将点击事件(包括被点击项目的索引)传递给容器。

itemList.ts

...
@Output()
itemClicked = new EventEmitter<number>();

@Output()
somethingElse = new EventEmitter<void>();

...
this.itemClicked.emit(index);
...
this.somethingElse.emit();
...
Run Code Online (Sandbox Code Playgroud)

容器.html:

...
<itemList (itemClicked)="itemClicked($index)"
          (somethingElse)="somethingElse()" ... >
  ...
</itemList>
...
Run Code Online (Sandbox Code Playgroud)

容器.ts:

...
itemClicked(observer: Observer<number>): void {
  // where do I get the index from ?
  console.debug('itemClicked( #' + index + ')');
}

somethingElse(observer: Observer<void>): void {
  console.debug('somethingElse()');
}
...
Run Code Online (Sandbox Code Playgroud)

问题是container.ts:我从哪里获取索引?

来自的事件somethingElse已成功传递到容器,因此这不可能是完全错误的。事实上,这就是我试图构建 itemClicked 的模式。但我无法将签名更改itemClicked(...)为正确且有效的版本。

events typescript angular

3
推荐指数
1
解决办法
4563
查看次数

标签 统计

angular ×1

events ×1

typescript ×1