我想将我的对象从组件传递到服务类。我知道角度级数中有一些可能的方法,但是您可以为我提供一个实现此目标的好方法,非常感谢您的良好建议和编码。
答案 0 :(得分:3)
您只需为您的服务定义一个setter getter:
组件:
constructor(private myService:MyService){}
ngOnInit(){
this.myService.setData(this.obj);
this.myServcie.getData();
}
MyService:
setData(obj){
this.obj = obj
}
getData(){
return this.obj;
}
答案 1 :(得分:1)
您可以使用@Input()
和@Output
变量。 @Input()
用于将数据从父组件传递到子组件,而@Output()
用于将事件从子组件传递到父组件。对于@Output()
,您必须在父组件中监听发出的事件。
此外,您可以使用上述共享服务,并使用observables
返回subjects
。
private subject = new Subject();
public obsForComponent = this.subject.asObservable();
setValue(condition: any){
this.subject.next(condition) // Sets the new Observable value that can be listened in components
}
在ngOnit
上的组件中或模板中,只需引用service.ObsForComponent.subscribe(value=>...)
,如果要设置/发出新的Obs,请service.setValue(something)