ошибка: 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) |
Не выбирать angular если тебе просто нужен VIEW.:)
У него бессмысленно высокий порог вхождения. Юзай Vue или, в край, React. |
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));
}
|
Сервис:
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));
}
}
спасибо большое за подсказку, теперь проект компилируется!! однако после компиляции выдает ошибку: Цитата:
|
мой 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"
}
}
|
SadiQ228,
нужно удалить все импорты из @angular/http. Этот модуль переехал в @angular/common/http. Вообще читайте документацию и будет вам счастье https://angular.io/guide/http |
жалко в консоли не пишет номер строчки где менять надо меняю в сервисе и модуле и все равно ошибка блин может есть какие то методы диагностики я хз
|
| Часовой пояс GMT +3, время: 14:59. |