我想知道最好的(干净的)方法是将参数传递给子组件并调用一些方法。 在我的项目中,我通过几种方式实现这一目标。
假设我们alert.component
采用show
方法。在履行承诺的情况下,我们希望将其称为(app.component
)。
1。我在alert
模板中创建了app.component
选择器。在app.component.ts
我创建@ViewChild alert
并致电alert.show(params)
。最后,我在模板中创建ngIf
以在适当的时间显示提醒。
app.component.ts
@ViewChild(AlertComponent)
private alertComponent: AlertComponent;
[...]
alertComponent.show(params);
app.component.html
<alert *ngIf(condition)></alert>
2。我在alert
模板中创建了app.component
选择器,并在那里传递了一些参数:alert([params]="params")
。我不会在@ViewChild
中创建任何app.component.ts
,而在@Input()
中创建alert.component.ts
。在show
。
ngOnChanges()
方法
alert.component.ts
@Input() params: any;
@Input() condition: boolean;
[...]
OnChanges() {
if (condition)
this.show(params);
}
app.component.html
<alert [condition]="condition", [params]="params"></alert>
您会选择哪种方式?