不幸的是,由于我在服务上存储了很多结果,我现在已经遇到了很多{{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 observable?
答案 0 :(得分:1)
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