Javascript-форум (https://javascript.ru/forum/)
-   Angular.js (https://javascript.ru/forum/angular/)
-   -   ошибка: Property does not exist on type (https://javascript.ru/forum/angular/79636-oshibka-property-does-not-exist-type.html)

SadiQ228 03.03.2020 03:06

ошибка: Property does not exist on type
 
сразу скажу я бэкэнд и мне просто нужно VIEW я просто повторяю один мануал из сети версии ангуляра видать разные и выходит шляпа:
Код:

Angular CLI: 9.0.4 Node: 12.16.1 OS: win32 x64
сначала сделал как в мануале:
import { Injectable } from '@angular/core';
import { Http, Response, Headers, RequestOptions } from '@angular/http';
import { Observable } from 'rxjs';
import { User } from './user';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';


@Injectable()
export class UserService{

    constructor(private _httpService: Http){}

    getAllUsers(): Observable<User[]>{
        return this._httpService.get("http://localhost:7777/webapp/user")
                .map((response: Response) => response.json())
                .catch(this.handleError);
    }

    private handleError(error: Response){
        return Observable.throw(error);
    }

}



но получаю ошибку:
Код:

Property 'map' does not exist on type 'Observable'.ts(2339)
долго и упорно гуглив понял что надо действовать иначе и переделал код:
import { Injectable } from '@angular/core';
import { Http, Response, Headers, RequestOptions } from '@angular/http';
import { Observable } from 'rxjs';
import { User } from './user';
import { map } from 'rxjs/operators'


@Injectable()
export class UserService{

    constructor(private _httpService: Http){}

    getUsers(){
    return this._httpService.get("http://localhost:7777/webapp/user")
    .pipe(map((response: Response) => response.json())
    .subscribe((response: Response) => {
      console.log(response)
    }));
}

    private handleError(error: Response){
        return Observable.throw(error);
    }

}


но теперь ошибка:
Код:

Property 'subscribe' does not exist on type 'OperatorFunction<Response, any>'.ts(2339)
прошу поддержки что надо сделать чтобы заработало?

Aetae 03.03.2020 03:27

Не выбирать angular если тебе просто нужен VIEW.:)
У него бессмысленно высокий порог вхождения.
Юзай Vue или, в край, React.

destus 03.03.2020 07:16

SadiQ228,
Желательно сортировать мануалы по дате их публикации. То что вы делаете на версии ангуляра 9+ уже не нужно.
getUsers(){
    return this._httpService.get("http://localhost:7777/webapp/user")

ну и в другом месте, где происходит вызов этого метода сервиса
someFn() {
    this.userService.getUsers().subscribe(users => console.log(users), error => console.error(error));
}

SadiQ228 03.03.2020 17:45

Сервис:
import { Injectable } from '@angular/core';
import { Http, Response, Headers, RequestOptions } from '@angular/http';
import { Observable } from 'rxjs';
import { User } from './user';


@Injectable()
export class UserService{

    constructor(private _httpService: Http){}

    getAllUsers(){
        return this._httpService.get("http://localhost:7777/webapp/user")
    }

    private handleError(error: Response){
        return Observable.throw(error);
    }

}


компонент:
import {Component, OnInit} from '@angular/core';
import {Router} from '@angular/router';
import {User} from './user';
import { UserService } from './user.service';

@Component({
    selector: 'app-user',
    templateUrl: './user.component.html',
    styleUrls: ['./user.component.css']
})

export class UserComponent implements OnInit{

    users: User[];

    constructor(private _userService: UserService){}
    
    ngOnInit(): void {
        this.getUsers();
    }

    getUsers(): void{
        this._userService.getAllUsers().subscribe(users => console.log(users), error => console.error(error));
    }

}


спасибо большое за подсказку, теперь проект компилируется!!

однако после компиляции выдает ошибку:
Цитата:

ERROR in The target entry-point "@angular/http" has missing dependencies:
- @angular/core
- @angular/platform-browser

SadiQ228 04.03.2020 00:01

мой package.json
{
  "name": "webapp",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "~9.0.3",
    "@angular/common": "~9.0.3",
    "@angular/compiler": "~9.0.3",
    "@angular/core": "~9.0.3",
    "@angular/forms": "~9.0.3",
    "@angular/platform-browser": "~9.0.3",
    "@angular/platform-browser-dynamic": "~9.0.3",
    "@angular/router": "~9.0.3",
    "rxjs": "^6.5.4",
    "tslib": "^1.10.0",
    "zone.js": "~0.10.2"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "~0.900.4",
    "@angular/cli": "^9.0.4",
    "@angular/compiler-cli": "~9.0.3",
    "@angular/language-service": "~9.0.3",
    "@types/jasmine": "~3.5.0",
    "@types/jasminewd2": "~2.0.3",
    "@types/node": "^12.11.1",
    "codelyzer": "^5.1.2",
    "jasmine-core": "~3.5.0",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~4.3.0",
    "karma-chrome-launcher": "~3.1.0",
    "karma-coverage-istanbul-reporter": "~2.1.0",
    "karma-jasmine": "~2.0.1",
    "karma-jasmine-html-reporter": "^1.4.2",
    "protractor": "~5.4.3",
    "rxjs-compat": "^6.5.4",
    "ts-node": "~8.3.0",
    "tslint": "~5.18.0",
    "typescript": "~3.7.5"
  }
}

destus 04.03.2020 06:18

SadiQ228,
нужно удалить все импорты из @angular/http. Этот модуль переехал в @angular/common/http. Вообще читайте документацию и будет вам счастье https://angular.io/guide/http

SadiQ228 04.03.2020 19:12

жалко в консоли не пишет номер строчки где менять надо меняю в сервисе и модуле и все равно ошибка блин может есть какие то методы диагностики я хз


Часовой пояс GMT +3, время: 05:36.