我有一个服务和一个使用它的组件:
PagesService
PagesListComponent
在PagesService
我有一个数组Pages
.我通过BehaviorSubject
订阅它们的数据来通知数组中的更改.
将PagesService
在提供bootstrap
,到只有一个实例共享.那是因为我需要保留数组,而不是每次需要时都下载页面.
代码如下:
pages.service.ts
import { Injectable } from '@angular/core';
import { BehaviorSubject } from 'rxjs/Rx';
import { Http, Response } from '@angular/http';
import { Page } from './../models/page';
@Injectable() export class PagesService {
public pages$: BehaviorSubject<Page[]> = new BehaviorSubject<Page[]>([]);
private pages: Page[] = [];
constructor(private http: Http) { }
getPagesListener() {
return this.pages$;
}
getAll() {
this.http.get('/mockups/pages.json').map((res: Response) => res.json()).subscribe(
res => { this.resetPagesFromJson(res); },
err …
Run Code Online (Sandbox Code Playgroud)