[英]How to return an observable from a http service in angular2
不幸的是,当我在服务上存储许多结果时,我现在陷入了许多{{myservice.somevalue}}
(和myservice.someother
)等问题,并散布在其他组件上的情况。
我相信从服务返回到组件会更好。
这是我在该服务上拥有的代码:
getIssue(issueName: string) {
return this.http.post(this.URL + 'issue/all', JSON.stringify({'issueName': issueName}))
.subscribe(data => this.somevalue = data.json(),
err => console.log(err));
}
因此,在其他几个组件上,我调用了诸如this.myservice.getIssue(issueName)
类的函数。
在HTML中,我更喜欢使用{{somevalue}}
。
如何从http服务返回可观察到的http?
class SomeService {
someValue = new BehaviorSubject();
getIssue(issueName: string) {
return this.http.post(this.URL + 'issue/all', JSON.stringify({'issueName': issueName}))
.subscribe(data => this.somevalue.next(data.json()),
err => console.log(err));
}
}
在你的组件中
class MyComponent {
constructor(someService:SomeService) {
someService.someValue.subscribe(val => {
this.someValue = val;
});
}
}
有关替代方法,另请参见https://stackoverflow.com/a/36291681/217408
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.