在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>
当然,上面的方法不起作用-这仅仅是一个固有的错误想法吗?
答案 0 :(得分:0)
您应该执行服务中的逻辑并返回一些输出。然后,在组件中获得该输出,然后基于该视图对视图进行操作。因此,在您的情况下,流程应该是相反的。从服务到组件再到视图。