在教程示例中无法解析“ rxjs / Rx”

时间:2018-10-07 04:29:17

标签: angular5 angular6

angular-cli版本是6.0.8,rxjs版本是6.3.3。

我正在遵循一个教程,并出现错误:无法解析“ rxjs / Rx”。我该如何解决错误?有没有办法可以使用早期版本的rxJS?

代码如下:

service.ts

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';

@Injectable()
export class Service {
  constructor(private _http: HttpClient) {

}

getPosts(): Observable<any> {
    return 
this._http.get("http://jsonplaceholder.typicode.com/posts");
  }

}

app.module.ts

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppComponent } from './app.component';
import { HttpClientModule } from '@angular/common/http';
import { Service } from './service';

@NgModule({
 declarations: [
  AppComponent
 ],
 imports: [
  BrowserModule,
  HttpClientModule
 ],
 providers: [HttpClientModule, Service],
 bootstrap: [AppComponent]

})    导出类AppModule {}

app.component.ts

import { Component, OnInit } from '@angular/core';
import { Service } from './service';
import  'rxjs/Rx';

@Component({
   selector: 'app-root',
   template: `
    <ul>
      <li *ngFor="let post of _posts">
        <b>{{post.title}}</b> {{post.body}}
      </li>
    </ul>
    <div *ngIf="_error">
      Error: {{_error.status}}:{{_error.statusText}}
    </div>
  `,
   styles: ['div {font-size:20px;padding:5px;background- 
       color:red;color:white}']
})
export class AppComponent implements OnInit {
      _posts = [];
      _error;
      constructor(private _service: Service) {}

      ngOnInit() {
        this._service.getPosts()
            .subscribe(
             response => {
                this._posts = response;
      },
        error => {
          this._error = error;
      }
    );
  }
}

2 个答案:

答案 0 :(得分:1)

使用Rxjs V6及更高版本时。 Rxjs使基于路径的导入成为可选。

import  'rxjs/Rx';

为什么需要此导入?未在组件中使用RX。请删除并尝试(如果不需要)。

答案 1 :(得分:0)

确保 rxjs-compat 库也包含在pakage.json文件中