Angular не будет импортировать Rxjs с ошибкой - PullRequest
0 голосов
/ 11 июня 2018

У меня проблема с импортом данных из БД в мое угловое приложение, если быть точным, я думаю, что мой код правильный, но у меня проблемы с импортом Rxjs.я опубликую свой код здесь:

import {Component, Directive} from '@angular/core';
import {FormGroup, FormControl} from '@angular/forms';
import {Http, Response, Headers} from '@angular/http';
import {Router, ActivatedRoute, Params} from '@angular/router';
import 'rxjs/Rx';

@Component({
    selector: 'app-room',
    templateUrl: './room.component.html',
    styleUrls: ['./room.component.css']
})
export class classRoomComponent {
    public sobe: any = [];
    http: Http;
    router: Router;
    route: ActivatedRoute;
    data: Object[];
    public id: Number;

    constructor(route: ActivatedRoute, http: Http, router: Router) {
        this.http = http;
        this.router = router;
        this.route = route;
    }

    ngOnInit() {

        this.route.params.subscribe((params: Params) => {
            let id = params['id'];
            let headers = new Headers();
            headers.append('Content-Type', 'application/x-www-form-urlencoded');
            headers.append("token", localStorage.getItem("token"));
            this.http.get('http://localhost/hotel/getroom.php?id=' + id, {headers: headers}).map(res => res.json()).share().subscribe(data => {
                    this.data = data.data;
                },
                err => {
                    this.router.navigate(['./']);
                }
            );
        });
    }
}

Где я ошибся, что я могу сделать, чтобы получить данные?или исправить импорт

ps, это ошибка, которую я получаю для rxjs: свойство 'map' не существует для типа 'Observable'.

1 Ответ

0 голосов
/ 11 июня 2018

В rxjs6 + вам нужно использовать конвейерные операторы , вы можете импортировать их из 'rxjs / operator', в вашем случае вам нужны только операторы map и share, поэтому решение для вас будет выглядеть следующим образом:

import { map, share } from 'rxjs/operators';

и после этого в коде используйте

this.http.get('http://localhost/hotel/getroom.php?id='+id,{headers:headers})
    .pipe(
        map(res => res.json()),
        share()
    )
    .subscribe(() => {})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...