J'apprends de nouveaux angular à partir du tutoriel ( https: //angular.io/tutorial/toh-pt4#inject-message-service ). Je suis coincé dans ceci pendant que je lance l'application après avoir ajouté les services
../ node_modules/rxjs/Rx "'n'a pas de membre exporté' de '.
hero.service.ts
---------------------
import { Injectable } from '@angular/core';
// import { Observable, of } from 'rxjs';
import { Observable, of } from 'rxjs/Observable';
import { Hero } from './hero';
import { HEROES } from './mock-heroes';
import { MessageService } from './message.service';
@Injectable()
export class HeroService {
constructor(private messageService: MessageService) { }
getHeroes(): Observable<Hero[]> {
// TODO: send the message _after_ fetching the heroes
this.messageService.add('HeroService: fetched heroes');
return of(HEROES);
}
}
Ma version Angular et les informations connexes sont
Angular CLI: 1.7.4
Node: 6.14.1
OS: linux x64
Angular: 5.2.10
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router
@angular/cli: 1.7.4
@angular-devkit/build-optimizer: 0.3.2
@angular-devkit/core: 0.3.2
@angular-devkit/schematics: 0.3.2
@ngtools/json-schema: 1.2.0
@ngtools/webpack: 1.10.2
@schematics/angular: 0.3.2
@schematics/package-update: 0.3.2
TypeScript: 2.5.3
webpack: 3.11.0
@angular/cli: 1.7.4
@angular-devkit/build-optimizer: 0.3.2
@angular-devkit/core: 0.3.2
@angular-devkit/schematics: 0.3.2
@ngtools/json-schema: 1.2.0
@ngtools/webpack: 1.10.2
@schematics/angular: 0.3.2
@schematics/package-update: 0.3.2
TypeScript: 2.5.
D'après votre code, on dirait que vous suivez Angular le guide officiel basé sur Angular 6 et Rxjs 6. Il y a un changement radical dans Rxjs pour lequel vous devez importer operators
et Observable
d'une manière différente maintenant.
Dans Rxjs 6, l'importation est comme ci-dessous -
import { Observable, of } from 'rxjs'; // only need to import from rxjs
Mais comme vous utilisez Angular 5.2.x, vous utilisez probablement encore la version 5x de Rxjs. En raison de quoi votre déclaration d'importation devrait être comme ci-dessous
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/of';
// or
import { of } from 'rxjs/observable/of';
Consultez le lien ci-dessous pour consulter le journal des modifications complet et obtenir des instructions pour installer un package de compatibilité rxjs-compat
Pour la mise à niveau de angular 5 à 6.
Voir ce lien pour référence: https://www.academind.com/learn/javascript/rxjs-6-what-changed/