Angular:如何直接从服务中操作组件中的@Input / local变量?

时间:2017-06-22 10:40:57

标签: angular rxjs observable

我想从组件调用的服务中操纵一些局部变量的值。

是的,可以通过订阅(在组件中)Observable(在服务中)来完成,但我不想在组件中添加任何内容。

updating variable changes in components from a service with angular2

建议:

component {
     service.subject.subscribe (_=>{--do stuff here --})
} 
Service {
     subject() -- An observable --
}

我希望服务负责设置我的一些局部变量(在组件中)。

这样的事情:

服务 - >调用一些组件'变量并设置它!

可以这样做吗?如果是,那怎么样?

1 个答案:

答案 0 :(得分:1)

使用服务的整个想法是使它们独立和可重用。因此,您想要使用服务来修改组件的属性会引入服务和组件之间的紧密耦合。

如果您仍想这样做,那么在此服务上创建一个setter,并从组件中调用它,将引用传递给组件实例,例如

myService.setComponent(this);

然后,您将能够从服务中修改组件的属性。但同样,我不建议走这条路。