我想从你点击某个东西时创建的服务中调用一个函数,但是我无法让它工作。我尽可能地简化了它,看看这种功能是否可行。
我有以下HTML:
<a (click)="SellingVarietiesService.goToVarietyDetails(3)">Test</a>
以下是我要调用的函数的代码:
@Injectable()
export class SellingVarietiesService {
constructor(private http: Http) { }
public goToVarietyDetails(varietyId: any): void {
console.log(varietyId);
}
}
HTML是通过.NET / C#生成的,并从我创建的服务中的HTTP调用返回。是否可以使用返回给我的HTML在我的服务中调用该函数?我的语法错了吗?
编辑:
我在返回的HTML上使用了DomSanitizer(包含(点击)功能的HTML)。以下是我的组件中使用它的代码:
// Get Variety List
getVarietyList() {
this.sellingMenuService.getVarieties().subscribe(res => {
this.varietyListSelling = this.sanitizer.bypassSecurityTrustHtml(res);
});
}
以下是HTML的位置:
<div *ngIf="varietyListSelling" [innerHtml]="varietyListSelling"></div>
以下是res
的示例:
<div class="varietyName">
<a class="" (click)="sellingVarietiesService.goToVarietyDetails(1176)" >Starbor</a>
<a href="#deleteVarietySelling" id="deleteVarietySelling_1176" class="quick-delete fa-minus-button" title="Delete" data-toggle="modal">
<i class="fa fa-minus"></i>
</a>
</div>
答案 0 :(得分:3)
您需要将服务注入托管您的html的组件
@Component({
template: `<a (click)="svs.goToVarietyDetails(3)">Test</a>`
})
export class MyComponent {
constructor( public svs: SellingVarietiesService) {}
}
然后您可以通过组件属性访问它。