0

我已经设置了我的应用程序HTTP_PROVIDERS

bootstrap(AppComponent, [
  HTTP_PROVIDERS,
  ROUTER_PROVIDERS,
  provide(LocationStrategy, { useClass: HashLocationStrategy }),
  PostService
]);

我的服务就像

@Injectable()
export class PostService {
  posts = [];

  constructor(http: Http) {
    this.http = http;
  }
}

但是当我打电话时

this.http.get('/posts')

它返回一个Observable没有map方法的,它让我发疯了好几个小时。我使用 Babel 转译我的 javascript 代码。

4

1 回答 1

3

新出现的服务器通信开发指南(最后)讨论/提到/解释了这一点:

RxJS 库非常大。当我们构建生产应用程序并将其部署到移动设备时,大小很重要。我们应该只包含我们实际需要的那些特性。

Observable因此,Angular在模块中公开了一个精简版本rxjs/Observable,该版本缺少几乎所有运算符,包括我们想在这里使用的运算符,例如map方法...

由我们来添加我们需要的运算符。我们可以一个接一个地添加每个操作符,直到我们有一个自定义的 Observable 实现精确地调整到我们的要求。

例如,正如@Langley 上面的评论所示:

import 'rxjs/add/operator/map';

或者,如果我们比较懒惰,我们可以引入全套操作符:

import 'rxjs/Rx';
于 2016-01-27T03:44:03.250 回答