小编use*_*041的帖子

如何使用 service 和 observable 在组件之间共享数据?

嗨,我是 angular 2+ 的新手,我正在尝试在两个组件之间共享数据,但第二个组件没有从服务中检索数据,它获取了一个空对象。

服务 - 使用 rxjs BehaviorSubject 来保持对象

import { BehaviorSubject } from 'rxjs/BehaviorSubject';
import { Observable } from 'rxjs/Observable';
@Injectable()
export class PostsService {

  response: any = {};
  private messageResponse = new BehaviorSubject(this.response);
  currentResponse = this.messageResponse.asObservable();

  constructor(private http: Http) { }

  // Get all posts from the API
  getAllPosts() {
    return this.http.get('/api/posts')
      .map(res => {
         this.messageResponse.next(res.json());
         return res.json();
      }).catch(err => {
         console.log('caught exception' + err.status);
         return Observable.throw(err);
      });
  }
}
Run Code Online (Sandbox Code Playgroud)

组件 1 - 帖子。该组件首先调用获取数据,检索没有问题,并更新messageResponse。

export class PostsComponent …
Run Code Online (Sandbox Code Playgroud)

observable rxjs angular-services behaviorsubject angular

2
推荐指数
1
解决办法
4522
查看次数