0

在我的文件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”

当我忘记此函数中 的.map时如何修改此代码

当我可以在我的项目中更正此代码并考虑所有问题时,请给我建议。

4

3 回答 3

1

使用 Angular HttpClient4.x+,它默认将 JSON 响应解析为一个对象,您不需要json()像使用 2.x 及更低版本那样对响应执行。你可以简单地做:

getContact() {
  return this.http.get('http://localhost:8080/chercherContacts?mc=sa&page=2&size=6');
}

如果不是 JSON,您只需要指定一个responseType :

getContact() {
  return this.http.get('http://localhost:8080/chercherContacts?mc=sa&page=2&size=6', {responseType: 'text'});
}

此外,请查看有关Typechecking the response的 4.x 文档,您可以在其中指定一个接口来告知HttpClient响应的类型。这是推荐的,它将在消费组件/服务/等中提供打字支持:

SomeInterface {
 foo: number;
 bar: string;
}

getContact() {
  return this.http.get<SomeInterface>('http://localhost:8080/chercherContacts?mc=sa&page=2&size=6');
}

这是一个简单的例子

希望这会有所帮助!

于 2018-09-14T21:32:50.930 回答
0

角度的版本将在我的项目中失效 我在运行我的应用程序时遵循此页面

Angular Injectable 装饰器 - 预期 0 个参数,但得到 1 个

谢谢我在这个堆栈中的所有朋友:)

于 2018-09-18T19:20:07.980 回答
0

在我的应用程序中。我在此文件夹中的目录服务中有一项服务当我将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中,每当我在本文档中编写此代码时,我都希望收到此网址

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: error TS1238: Unable to resolve signature of class decorator 当作为表达式调用时。

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 中写入数据

就这样

于 2018-09-17T22:21:08.880 回答