AngularJS 具有 & 参数,您可以在其中将回调传递给指令(例如 AngularJS 的回调方式。是否可以将回调作为 @Input
传递给 Angular 组件(如下所示)?如果不是什么会是最接近 AngularJS 所做的事情吗?
@Component({
selector: 'suggestion-menu',
providers: [SuggestService],
template: `
<div (mousedown)="suggestionWasClicked(suggestion)">
</div>`,
changeDetection: ChangeDetectionStrategy.Default
})
export class SuggestionMenuComponent {
@Input() callback: Function;
suggestionWasClicked(clickedEntry: SomeModel): void {
this.callback(clickedEntry, this.query);
}
}
<suggestion-menu callback="insertSuggestion">
</suggestion-menu>
原文由 Michail Michailidis 发布,翻译遵循 CC BY-SA 4.0 许可协议
我认为这是一个糟糕的解决方案。如果您想通过
@Input()
,@Output()
将函数传递给组件,那么您正在寻找装饰器。