直接从HTML模板访问服务和“自我”?

时间:2019-08-15 16:16:35

标签: html angular typescript service self

Angular 6中,要从服务访问我们的组件属性,我们将“ self”从组件传递给服务。例如:

myComponent.ts

public myButton;

constructor(private myService: MyService) 
{
    super();
}

ngOnInit() {
    this.myButton = document.getElementById("my-button");
}

saveFunction() {
    var self = this;
    this.myService.myServiceFunction(self)
}

my.service.ts

myServiceFunction(p_self)
{
  ...do stuff
  p_self.myButton.classList.remove("btn-danger");
}

这使我们可以从共享服务访问组件的按钮元素。

A):我可以直接从HTML模板调用我的服务吗?

B):是否可以通过HTML模板将self传递给服务?我希望通过HTML可以实现以下功能:

my.component.html

<button (click)=this.myService(self)></button>

当然,上面的方法不起作用-这仅仅是一个固有的错误想法吗?

1 个答案:

答案 0 :(得分:0)

您应该执行服务中的逻辑并返回一些输出。然后,在组件中获得该输出,然后基于该视图对视图进行操作。因此,在您的情况下,流程应该是相反的。从服务到组件再到视图。