簡體   English   中英

如何從angular2的http服務返回可觀察的對象

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM