如何在角度2视图中调用共享服务功能?

时间:2018-01-13 06:10:05

标签: angular angular2-services

我想打电话给共享服务功能表格"另一个"组件的视图文件。

例如,要删除我想要设置的记录:

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

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

4 个答案:

答案 0 :(得分:5)

没有办法从视图(模板)调用服务而不将其注入到组件中。

您可以将服务注入公共属性,以便您也可以使用模板中的服务方法。

constructor(public yourService: YourService) {

}

您的模板:

<a (click)="yourService.yourMethod()">Test mehod</a>

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

答案 1 :(得分:2)

为了良好实践,最好在private范围内使用该服务,并使用一种方法将其返回到视图。

喜欢这篇文章。

Typescript dependency injection public vs private

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

组件类中定义的每个属性都可以在模板中使用。