错误 TS2339:属性 'JSON' 在类型 'Object' 上不存在。 “.map(resp => resp.JSON())” angular 4
Error TS2339: Property 'JSON' does not exist on type 'Object'. ".map(resp => resp.JSON())" angular 4
在我的文件中 contacts.service.ts。我有自己的代码
import {Injectable} from '@angular/core';
import {HttpClient} from "@angular/common/http";
@Injectable
export class contactsService{
constructor(public http: HttpClient){
}
getContact(){
return this.http.get('http://localhost:8080/chercherContacts?
mc=sa&page=2&size=6')
.map(resp => resp.JSON());
}
}
我在函数 getContact() 中遇到问题,因为 HttpClient 不需要地图,我收到了消息,我得到了消息:属性 'JSON' 在类型 'Object'
上不存在
当我忘记了这个函数中的 .map 时如何修改这段代码
当我可以在我的项目中更正此代码并考虑所有问题时给我建议。
使用Angular HttpClient
4.x+,默认将JSON响应解析为一个对象,不需要执行json()
反对你对版本 2.x 及更低版本所做的响应。你可以简单地做:
getContact() {
return this.http.get('http://localhost:8080/chercherContacts?mc=sa&page=2&size=6');
}
你只需要指定一个 responseType 如果它不是 JSON:
getContact() {
return this.http.get('http://localhost:8080/chercherContacts?mc=sa&page=2&size=6', {responseType: 'text'});
}
此外,请查看有关 Typechecking the response 的 4.x 文档,您可以在其中指定一个接口来告知 HttpClient
响应的类型。这是推荐的,它将在消费 components/services/etc:
中提供打字支持
SomeInterface {
foo: number;
bar: string;
}
getContact() {
return this.http.get<SomeInterface>('http://localhost:8080/chercherContacts?mc=sa&page=2&size=6');
}
这是一个简单的 example 实际操作。
希望对您有所帮助!
在我的申请中。我在这个文件夹的 services 目录中有一个服务 当我把 contact.service.ts 放在这个服务中时,我有我的第一个服务
import {HttpClient} from "@angular/common/http";
@Injectable
export class ContactsService {
constructor( public http: HttpClient){
}
getContacts(){
return this.http.get("http://localhost:8080/findPersons?mc=wa&page=1&size=6");
}
}
在我的组件中 contact.component.ts 我想收到这个 url 每当我在这个文档中写这个代码
import { Component, OnInit } from '@angular/core';
import {HttpClient} from "@angular/common/http";
import {ContactsService} from "../../services/contact.service";
@Component({
selector: 'app-contact',
templateUrl: './contact.component.html',
styleUrls: ['./contact.component.css']
})
export class ContactComponent implements OnInit {
pageContacts: any;
constructor(public http: HttpClient, public contactService: ContactsService) { }
ngOnInit() {
this.contactService.getContacts().subscribe(data => {
this.pageContacts = data;
}, err => {
console.log("L'erreuR : "+err);
});
}
}
但我在 src/services/contact.service.ts(4,1) 中遇到错误 ERROR:错误 TS1238:调用时无法解析 class 装饰器的签名作为表达式。
ligne(4,1)在@Injectable的ligne里,不知道问题出在哪里
我的问题是删掉这段代码
ngOnInit() {
this.http.get('http://localhost:8080/findPersons?mc=wa&page=1&size=6')
.subscribe(data =>{
this.pageContacts = data;
}, err => {
console.log('ErreuR : '+err);
});
}
一分为二。其中一项服务是当我收到 url 时,第二项是将数据写入页面 web
这就是全部
angular 的版本将在我的项目中出现故障
当我 运行 我的申请
时,我会关注此页面
谢谢我所有的朋友 :)
在我的文件中 contacts.service.ts。我有自己的代码
import {Injectable} from '@angular/core';
import {HttpClient} from "@angular/common/http";
@Injectable
export class contactsService{
constructor(public http: HttpClient){
}
getContact(){
return this.http.get('http://localhost:8080/chercherContacts?
mc=sa&page=2&size=6')
.map(resp => resp.JSON());
}
}
我在函数 getContact() 中遇到问题,因为 HttpClient 不需要地图,我收到了消息,我得到了消息:属性 'JSON' 在类型 'Object'
上不存在当我忘记了这个函数中的 .map 时如何修改这段代码
当我可以在我的项目中更正此代码并考虑所有问题时给我建议。
使用Angular HttpClient
4.x+,默认将JSON响应解析为一个对象,不需要执行json()
反对你对版本 2.x 及更低版本所做的响应。你可以简单地做:
getContact() {
return this.http.get('http://localhost:8080/chercherContacts?mc=sa&page=2&size=6');
}
你只需要指定一个 responseType 如果它不是 JSON:
getContact() {
return this.http.get('http://localhost:8080/chercherContacts?mc=sa&page=2&size=6', {responseType: 'text'});
}
此外,请查看有关 Typechecking the response 的 4.x 文档,您可以在其中指定一个接口来告知 HttpClient
响应的类型。这是推荐的,它将在消费 components/services/etc:
SomeInterface {
foo: number;
bar: string;
}
getContact() {
return this.http.get<SomeInterface>('http://localhost:8080/chercherContacts?mc=sa&page=2&size=6');
}
这是一个简单的 example 实际操作。
希望对您有所帮助!
在我的申请中。我在这个文件夹的 services 目录中有一个服务 当我把 contact.service.ts 放在这个服务中时,我有我的第一个服务
import {HttpClient} from "@angular/common/http";
@Injectable
export class ContactsService {
constructor( public http: HttpClient){
}
getContacts(){
return this.http.get("http://localhost:8080/findPersons?mc=wa&page=1&size=6");
}
}
在我的组件中 contact.component.ts 我想收到这个 url 每当我在这个文档中写这个代码
import { Component, OnInit } from '@angular/core';
import {HttpClient} from "@angular/common/http";
import {ContactsService} from "../../services/contact.service";
@Component({
selector: 'app-contact',
templateUrl: './contact.component.html',
styleUrls: ['./contact.component.css']
})
export class ContactComponent implements OnInit {
pageContacts: any;
constructor(public http: HttpClient, public contactService: ContactsService) { }
ngOnInit() {
this.contactService.getContacts().subscribe(data => {
this.pageContacts = data;
}, err => {
console.log("L'erreuR : "+err);
});
}
}
但我在 src/services/contact.service.ts(4,1) 中遇到错误 ERROR:错误 TS1238:调用时无法解析 class 装饰器的签名作为表达式。
ligne(4,1)在@Injectable的ligne里,不知道问题出在哪里
我的问题是删掉这段代码
ngOnInit() {
this.http.get('http://localhost:8080/findPersons?mc=wa&page=1&size=6')
.subscribe(data =>{
this.pageContacts = data;
}, err => {
console.log('ErreuR : '+err);
});
}
一分为二。其中一项服务是当我收到 url 时,第二项是将数据写入页面 web
这就是全部
angular 的版本将在我的项目中出现故障 当我 运行 我的申请
时,我会关注此页面谢谢我所有的朋友 :)