[英]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.