如何在Angle 2 View中调用共享服务功能?

Tal*_*ode 0 angular2-services angular

我想调用共享服务功能表单“另一个”组件的视图文件。

例如,要删除一条记录,我想设置以下内容:

<tr *ngFor="let ddata of tableData.data; let i = ddata" 
(click)="delete_record(ddata)" 
[class.active]="ddata.discountauthorizationid == selectedRow">
Run Code Online (Sandbox Code Playgroud)

delete_record必须是我将在相关组件中注入的服务的一部分。

M98*_*M98 6

如果不将服务注入到组件中,则无法从视图(模板)调用服务。

您可以将服务注入到公共属性中,该属性也允许您在模板内部使用服务方法。

constructor(public yourService: YourService) {

}
Run Code Online (Sandbox Code Playgroud)

您的模板:

<a (click)="yourService.yourMethod()">Test mehod</a>
Run Code Online (Sandbox Code Playgroud)

注意:请考虑更好的解决方案是调用组件方法而不是使用服务方法。服务是在彼此不认识的类之间共享信息的好方法

  • 请不要激发任何人在模板中调用服务。这不是一个好习惯 (2认同)

小智 5

根据官方文档,注入公共服务将其绑定在模板中并不是反模式。

https://angular.io/tutorial/toh-pt4